![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux IPC
文章平均质量分 89
邻居家的小南瓜
这个作者很懒,什么都没留下…
展开
-
linux IPC-信号量
信号量信号量是一种用于提供不同进程间或一个从给定进程的不同线程间同步手段的原语。Posix有名信号量 使用Posix IPC名字标识 Posix基于内存的信号量 存放在共享内存区 System V信号量 在内核中维护 操作创建 等待 挂出 信号量分类Posix 二值信号量 其值为0或1的信号量 计数信号量 其值在 0和某个限制值 System V 计数信号量集 一个或多个信号量(构成一个集合),其中每个都原创 2022-05-11 14:58:05 · 3395 阅读 · 2 评论 -
linux IPC-互斥锁和条件变量
目录1、互斥锁1.1、PTHREAD_MUTEX_INITIALIZER1.2、pthread_mutex_init()函数1.3、pthread_mutex_destroy()函数1.4、pthread_mutexattr_init()函数1.5、pthread_mutexattr_destroy()函数1.6、pthread_mutexattr_getpshared()函数1.7、pthread_mutexattr_setpshared()函数1.8、pthread_原创 2021-08-29 22:01:49 · 1546 阅读 · 0 评论 -
linux IPC-共享内存区
1、简介优点 共享内存区是IPC形式中最快的。当内存区映射到共享它的进程的地址空间,这些进程间数据的传递就不再涉及内核(进程不再通过执行任何热进入内核的系统调用来彼此传递数据)。 缺点 往共享内存区存放信息和从众取走信息的进程间通常需要某种形式的同步。 注:对于管道、FIFO和消息队列,进程要交换信息时,这些消息必须经由内核传递。换句话说,数据复制在内核和进程间进行,往往开销很大(必纯粹在内核中或单个进程内复制数据的开销大)。通过让进程共享一个内存区,可以绕过上述问题,所有说共享内存原创 2022-05-11 13:45:40 · 372 阅读 · 1 评论 -
linux IPC-消息队列
1、消息队列1)对Posix消息队列的读总是返回最高优先级的最早消息,对System V消息队列的读则可以返回任意指定优先级的消息。2)当往一个空队列放置一个消息时,Posix消息队列允许产生一个信号或启动一个线程,System V消息队列则不提供类似机制。接收时,接收缓冲区小于时间的消息大小时,Posix消息队列返回EMSGSIZE,System V消息队列返回E2BIG,UDP recvmsg函数返回MSG_TRUNC标志注:Posix消息队列和System V消息队列都不具有的特性:.原创 2021-09-21 15:53:35 · 1314 阅读 · 1 评论 -
linux IPC-读写锁
目录1、简介2、PTHREAD_RWLOCK_INITIALIZER3、pthread_rwlock_init()函数4、pthread_rwlock_destroy()函数5、pthread_rwlockattr_init()函数6、pthread_rwlockattr_destroy()函数7、pthread_rwlockattr_getpshared()函数8、pthread_rwlockattr_setpshared()函数9、pthread_rwlock_rdl原创 2021-08-29 16:15:22 · 299 阅读 · 0 评论 -
linux IPC-管道和FIFO
1、管道管道没有名字,从而只能由有亲缘关系的进程使用。注:从技术上上讲,自从可以在进程间传递描述符后,管道也能用于无亲缘关系的进程间。然而现实中,管道通常用于具有共同祖先的进程间。宏S_ISFIFO可用于确定一个描述符或文件是管道还是FIFO.它的唯一参数是stat结构的st_mode成员,计算结果或者为真(非零值),或者为假(0),对于管道来说,这个stat结构是fstat函数填写的。对于FIFO来说,这个结构是由fstat或stat函数填写的。管道时半双工的即单向的,只提供一个方原创 2021-09-12 20:12:44 · 269 阅读 · 1 评论