首页 > 系统服务 > 详细

(二)进程间通信方式

时间:2020-05-28 01:04:48      阅读:51      评论:0      收藏:0      [点我收藏+]

1 概述

   linux常见的五大进程间通信方式包括:共享内存、管道、消息队列、信号量、Socket。

2 共享内存

    定义:将同一块物理内存映射到不同的进程的虚拟地址空间中,实现不同进程间对同一资源的共享。

    特定:(1)不用从用户态到内核态的频繁切换和拷贝数据,直接从内存中读取就可以。

             (2)共享内存是临界资源,所以需要操作时必须要保证原子性。使用信号量或者互斥锁都可以。

3 管道

    (1)无名管道:在内核中申请一块固定大小的缓冲区,程序拥有写入和读取的权利,仅适用于具有共同祖先的进程间的通信。

    (2)命名管道:在内核中申请一块固定大小的缓冲区,程序拥有写入和读取的权利,适用于任意两个进程间的通信。

4 消息队列

   在内核中创建一队列,队列中每个元素是一个数据报。消息队列提供从?个进程向另?个进程发送?块数据的?法,因此不同的进程通过访问同一消息队列实现通信。

5 信号量

   信号量是一种特殊的变量,用于解决进程或线程间共享资源引发的同步问题。对于信号量只允许进行+1和-1两个操作,对应的两种状态为:

   (1)当信号量值等于0时,程序等待;

   (2)当信号量值大于0时,信号量减1,程序继续运行。

(二)进程间通信方式

原文:https://www.cnblogs.com/huaiheng/p/12977651.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!