进程间通信方法
- 管道
- 信号
- 消息队列
- 共享内存
- Socket
管道
管道可以分为两类,匿名管道与命名管道。
例如:
- java中的PipeInputSteam
- Linux中的cat < pipe 命令,和echo ‘Happyjava’ > pipe命令
信号
信号量:主要作为进程间以及同一进程不同线程之间的同步手段。
消息队列
消息队列是消息的链表,存放在内核中。一个消息队列由一个标识符(即队列ID)来标识。包括Posix消息队列system V消息队列。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。activeMQ https://www.jianshu.com/p/4021f902ec50
共享内存
共享内存(Shared Memory),指两个或多个进程共享一个给定的存储区。
特点:
共享内存是最快的一种 IPC,因为进程是直接对内存进行存取。
因为多个进程可以同时操作,所以需要进行同步。
信号量+共享内存通常结合在一起使用,信号量用来同步对共享内存的访问。
Socket 套接字
https://blog.csdn.net/a78270528/article/details/80318571