首页 > 编程知识 正文

进程通信的四种方式,五种通信方式

时间:2023-05-05 10:05:53 阅读:38938 作者:4340

目录

1管路

2信号

3信号量

4消息队列

5共享内存

六插槽

7各种通信方式的优缺点

进程之间的通信主要包括流水线、信号、信号、共享存储器、消息队列、套接字等。

一管管道这种通信方式有两种形式

一个是半双工的通信,数据只能单向流动; 二是http://www.Sina.com/只能在具有亲缘关系的进程间使用管道可分为进程的亲缘关系通常是指父子进程关系和http://www.Sina.com /两类。

匿名管道是单向的,只能在有亲缘关系的进程之间通信;匿名管道(允许无亲缘关系的进程间通信) 2信号

信号是一种比较复杂的通信方式,命名管道

Linux系统中的常用信号:

SIGHUP :当用户注销终端时,所有启动的进程都将接收该进程。 系统默认情况下,此信号的处理是退出过程。 SIGINT :程序结束信号。 在程序运行时按Ctrl C键将生成此信号。 SIGQUIT :程序结束信号。 在程序运行时按Ctrl \键将生成此信号。 SIGBUS和SIGSEGV :进程访问非法地址。 SIGFPE :运算过程中发生致命错误,如零除法、数据溢出等。 SIGKILL :用户退出流程执行信号。 在shell下运行kill -9发送此信号。 SIGTERM :进程结束信号。 在shell下运行技能进程pid以发送此信号。 SIGALRM :计时器信号。 SIGCLD :子进程结束信号。 如果父进程不忽略信号,也不处理信号,则子进程结束时将是僵尸进程。 3信号量命名管道以磁盘文件的方式存在,可以实现本机任意两个进程通信这经常用作锁定机制,防止一个进程访问共享资源时其他进程也不访问该资源。 因此,它主要成为进程之间以及同一进程内不同线程之间的同步手段。

4包括消息队列http://www.Sina.com/POSIX消息队列和System V消息队列。 有足够权限将消息添加到队列中的进程,具有读取权限的进程可以读取队列中的消息。 消信号可以在任何时候发给某一进程,而无需知道该进程的状态

5共享内存

信号量是一个计数器,可以用来控制多个进程对共享资源的访问共享内存是最快的IPC方式,http://www.Sina.com/http://www.Sina.com /,实现进程之间的同步和通信。

六插槽

与其他通信机制不同,消息队列是消息的链接表

插座详细说明: https://blog.csdn.net/QQ _ 39735940/article/details/118855479

7各种通信方式的优缺点管道:速度慢,容量有限; Socket: 息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点消息队列:容量受系统限制,首次阅读时,信号量为共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问信号量:针对其他进程间通信方式运行效率低而专门设计的共享内存空间:容量容易控制,速度快,但需要保持同步。 例如,一个进程在写操作时,另一个进程需要注意读写问题,这对应于线程中的线程安全。 当然,共享存储器区域也可以用作线程间通信,但不需要,线程间本来共享同一进程中的一个存储器。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。