码迷,mamicode.com
首页 > 其他好文 > 详细

信号量

时间:2016-11-05 18:04:25      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:ipc   变量   style   进程   线程等待   共享内存   内核   思考   读者   

引言

信号量分为三种:posix有名信号量(使用Posix IPC名字标识)/posix基于内存的信号量(共享内存)/System V 信号量(内核

有了互斥锁和条件变量,为何还要用信号量呢?Posix.1基本原理一文解释了这个问题:信号量的目的主要是用于进程间的同步,这些进程可能共享可能不共享内存区。互斥锁和条件变量是作为线程间的同步机制说明的,这些线程总是共享(某个)内存区。

信号量还是有一些互斥锁和条件变量所没有的特性:

(1)互斥锁必须由上锁的进程解锁。信号量没有这个限制(想一想操作系统课上讲的关于信号量的P V原语)。

(2)互斥锁要么被锁住,要么被解锁。类似于二值信号量。

(3)当向一个条件变量发送信号,如果没有线程等待在这个条件变量上(可能线程被取消),那么该信号将丢失。然而,信号量的加1操作总是被记住的(具体被谁记住,这个地方读者思考)。

posix有名信号量

信号量

标签:ipc   变量   style   进程   线程等待   共享内存   内核   思考   读者   

原文地址:http://www.cnblogs.com/sylz/p/6033353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!