zoukankan      html  css  js  c++  java
  • 进程间通信

    主要有:

    管道,有名管道,消息队列,信号量,共享内存,信号,套接字。

    进程的地址空间是各自独立的,因此进程之间交互数据必须采用专门的通信机制。特别是在大型的应用系统中,往往需要多个进程相互

    协作共同完成一个任务,这就需要使用进程间通信(internet process connection,IPC)编程技术。

    套接字的进程间通信机制,允许通信的进程可以运行在不同的主机上,也就是进行网络通信。

    几种主要通信方式的介绍:

    1、管道:是一种半双工的通信方式,数据只能单方向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

    2、有名管道:也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。

    3、信号量semophore:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,

    其他进程也访问该资源。因此主要作为进程间以及同一进程内不同线程之间的同步手段。

    4、消息队列:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息量少,管道只能承载无格式字节流

    以及缓冲区大小受限等缺点。

    5、信号:是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

    6、共享内存:就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建但是多个进程都可以访问。共享内存是最快的IPC方式,它是

    针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。

    7、套接字:与其他进程间通信机制不同的是,它可以用于不同机器间的进程通信。

  • 相关阅读:
    Python 模块 itertools
    Python 字符串的encode与decode
    python 模块 hashlib(提供多个不同的加密算法)
    暴力尝试安卓gesture.key
    hdu 1300 Pearls(DP)
    hdu 1232 畅通工程(并查集)
    hdu 1856 More is better(并查集)
    hdu 1198 Farm Irrigation(并查集)
    hdu 3635 Dragon Balls(并查集)
    hdu 3038 How Many Answers Are Wrong(并查集)
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/6703627.html
Copyright © 2011-2022 走看看