摘要: 类似于Mutex,但信号量Semaphores不仅仅是锁和解锁那么简单,更高级的是,可以被锁住最多n次。其中这个n是信号量被产生时指定的n。该值常常被用来代表“可以锁定住一份资源”的线程个数。可以把Mutex比作厕所,当一个人进去后,其他人只能等待;可以把信号量看作是多个Mutex(多个厕所),反正就3个厕所(一个入口,3个坑),无论等待的有多少人,反正想进去必须等到里面出来一个(如果里面满了);在许多系统中,常常使用的是信号量而非Mutex,因为它不一定存在。但是在win32中,我们更多的使用Mutex而不是信号量,Mutex方便嘛,当然用信号量也是可以的。常用的信号量接口:1. 产生信号量 阅读全文
posted @ 2014-03-19 17:39 大卫酱_David 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 互斥器的功能是,使多个线程和谐工作。同一时间内,只能有一个线程得到互斥对象,并获得资源操作权限,那么如果同一时间其他线程也想去操作资源,此时就会因为Mutex未处于激发状态,而无奈的等待…这时候,线程就会进入blocking(阻塞)状态,直到Mutex让出来。总结下Mutex的操作步骤,分为以下几个功能:1. 产生一个全局互斥器Mutex(一个Mutex可以看做一个资源,如果要多个资源,则需要创建多个Mutex句柄);2. 锁住互斥器Mutex:获得一个Mutex的拥有权,其他线程只能等待。当需要锁操作时,如果此时锁未处于激活状态,线程就得等待(也就是阻塞状态/sleep)并每隔一段时间尝试着 阅读全文
posted @ 2014-03-19 10:57 大卫酱_David 阅读(3584) 评论(0) 推荐(0) 编辑