• Linux 进程间通信


    进程间通信(IPC,Inter Process Communication)

    1、管道,包含匿名管道和命名管道。

    1)匿名管道(pipe)

    1.1)半双工,数据只能单向流动。

    1.2)只能在有亲缘关系的进程间(fork系统调用)使用。

    1.3)传输无格式的字节流,并且缓冲区大小受限。

    1.4)应用于Linux命令行,即“|”,可以让前一个命令的输出作为后一个命令的输入。

    // 创建匿名管道
    int pipe(int filedes[2]);

    2)命名管道(fifo)

    2.1)可以在无亲缘关系的进程间使用。

    // 创建命名管道
    int mkfifo(const char* pathname, mode_t mode);

    2、信号量(semophore)

    用于多进程同步访问共享资源。

    3、共享内存(shared memory)

    多进程共享同一片内存(每个进程都有自己独立的进程内存空间),是最快的IPC。通常结合其他IPC,如信号量,来实现多进程同步。

    4、消息队列(message queue)

    消息的链表。传输有格式的消息。 

    5、套接字(socket)

    可用于不同机器间的IPC。

  • 相关阅读:
    Linux 添加环境变量
    postgresql 获取修改列的值
    5月30日周一上午
    周日5月29日
    2016年5月26日
    如何使用Gson(添加到项目里去)
    linux内核分析课程总结()待完善
    5月5日离散课笔记
    4月28日的离散课(还少了一部分)
    2016年4月29日
  • 原文地址:https://www.cnblogs.com/yangwenhuan/p/12214274.html
Copyright © 2020-2023  润新知