插槽的连接被检查,看它是否被阻塞或断开,然后,连接的互斥体被解锁。
要检索其访问控制安全性规则的系统mutex的名称。
当一个线程准备终止时,它再次锁定互斥量,减量threadcount,然后解锁互斥量。
在打开和关闭互斥调用之间的代码称为临界域。
因此,最后两个读线程都等待条件变量,互斥锁没有被锁住。
如果调用线程并不拥有这个互斥信号量,那么这个函数的执行将会失败。
正如所示,pthread_mutex_init接受一个指针作为参数以初始化为互斥对象,该指针指向一块已分配好的内存区。
互斥(通常被称为mutex)允许编程人员给资源上锁。
所示,互斥提供线程间资源的独占访问控制。
它还允许您原子地(atomically)解除互斥的锁定,并等待条件变量,而不会有干涉其他线程的可能。
队列类的构造函数和析构函数负责创建和销毁互斥锁,见清单1。
Mutex对象是一次只能为一个线程所拥有的同步对象。
它是一个简单的锁,只有持有它的线程才可以释放那个互斥。
使用来自具有指定名称的系统mutex的访问控制安全性规则的指定部分初始化。
可能因为分配的时间片结束,持有互斥锁的线程被取消调度。
互斥锁API提供了5个函数:其中3个用于锁定,一个用于解锁,另一个用于测试互斥锁。
进程可以在OpenMutex函数或CreateMutex函数中指定互斥体对象的名称。
显然,把数据放到队列中就像是把数据添加到列表中,必须使用互斥锁保护这个操作。
更好的做法是定义另一个方法,它接收一系列整数,只获取并释放互斥锁一次。
当互斥体对象不属于任何一个线程时,互斥体的状态为受信状态。
一个MutexSecurity对象,表示应用于已命名的系统互斥体的访问控制安全性。
同时,另一个句柄您强制关闭时重用作为用于帮助防止数据被损坏一个互斥体句柄。
如果到超时时间段结束时还没有被唤醒,读线程需要唤醒自身并释放互斥锁。
创建和使用互斥量的过程比仅仅是开始一个线程的过程要稍微复杂一些。
最后,可以通过调用mutex_is_locked检查互斥锁的状态。
缓冲区的获取是通过使用锁存器(latch)和锁访问信息来管理的,该锁存器称作mutex。
该示例使用OpenExisting(String)方法重载来测试指定的mutex是否存在。