Linux平台应用开发--进程间通方式
1.管道:
1)有名管道与无名管道的区别:
有名管道:任何进程之间
无名管道:父子进程之间
- 写入管道数据在内存存放
- 管道是一种半双工通信方式
- 内核实现方式
关于管道更多请看我之前的博客:
https://blog.csdn.net/Kobe51920/article/details/103229320
2.信号量:
- 1)信号量的概念:
信号量是一个计数器,常用于处理进程或线程的同步问题,特别是对临界资源的同步访问。
临界资源可以简单的理解为在某一时刻只能由一个进程或线程进行操作的资源,这里的资源
可以是一段代码、一个变量或某种硬件资源。信号量的值大于或等于0时表示可供并发进程使用的
资源实体数;小于0时代表正在等待使用临界资源的进程数。
注意:这里的信号量跟信号是没有关系的。
与消息队列类似,linux内核也为每个信号量维护了一个semid_ds 数据结构实例,
- 2)临界资源:
同一时刻只有一个进程可以去访问
- 3)p,v操作:
p:+1
v:-1
- 4)临界区:
对临界资源的访问有控制,达到同一时刻进程可以去访问
- 5)进程同步:
http://c.biancheng.net/cpp/html/2596.html
3.共享内存:
更多请看我之前的博客:
https://blog.csdn.net/Kobe51920/article/details/103274866
4.消息队列:
这个方式一般用的少,就不细讲了
5.套接字socket:
看我之前的博客中有提到: