插槽的连接被检查,看它是否被阻塞或断开,然后,连接的互斥体被解锁。
要检索其访问控制安全性规则的系统mutex的名称。
当一个线程准备终止时,它再次锁定互斥量,减量threadcount,然后解锁互斥量。
因此,最后两个读线程都等待条件变量,互斥锁没有被锁住。
如果调用线程并不拥有这个互斥信号量,那么这个函数的执行将会失败。
正如所示,pthread_mutex_init接受一个指针作为参数以初始化为互斥对象,该指针指向一块已分配好的内存区。
互斥(通常被称为mutex)允许编程人员给资源上锁。
它还允许您原子地(atomically)解除互斥的锁定,并等待条件变量,而不会有干涉其他线程的可能。
队列类的构造函数和析构函数负责创建和销毁互斥锁,见清单1。
Mutex对象是一次只能为一个线程所拥有的同步对象。
它是一个简单的锁,只有持有它的线程才可以释放那个互斥。
这个函数会获得一个指向它正在尝试锁定的互斥的指针。
使用来自具有指定名称的系统mutex的访问控制安全性规则的指定部分初始化。
可能因为分配的时间片结束,持有互斥锁的线程被取消调度。
互斥锁API提供了5个函数:其中3个用于锁定,一个用于解锁,另一个用于测试互斥锁。
进程可以在OpenMutex函数或CreateMutex函数中指定互斥体对象的名称。
显然,把数据放到队列中就像是把数据添加到列表中,必须使用互斥锁保护这个操作。
更好的做法是定义另一个方法,它接收一系列整数,只获取并释放互斥锁一次。
当互斥体对象不属于任何一个线程时,互斥体的状态为受信状态。
一个MutexSecurity对象,表示应用于已命名的系统互斥体的访问控制安全性。
同时,另一个句柄您强制关闭时重用作为用于帮助防止数据被损坏一个互斥体句柄。
如果到超时时间段结束时还没有被唤醒,读线程需要唤醒自身并释放互斥锁。
创建和使用互斥量的过程比仅仅是开始一个线程的过程要稍微复杂一些。
最后,可以通过调用mutex_is_locked检查互斥锁的状态。
缓冲区的获取是通过使用锁存器(latch)和锁访问信息来管理的,该锁存器称作mutex。
该示例使用OpenExisting(String)方法重载来测试指定的mutex是否存在。
它可以重复对互斥对象锁定和解锁,每次都会检查共享数据结构,以查找某个值。
我们还引用了一系列互斥示例代码来帮助您进行从Win32到Linux的迁移行动。
1·Fear not, you'll still have access to the raw mongrel request if you want to do fancy stuff like streaming or deferred rendering outside the mutex.
不用害怕,如果您想在互斥以外做一些奇特的事情,比如流处理或延迟呈现,您仍然可以访问原始的 mongrel 请求。
2·The error is not due to the locked mutex.
那个错误不是归咎于被锁定的互斥。
3·Mutexes have names, and only one mutex of a given name can exist on a machine at a time.
互斥有名称,并且,一个给定名称的互斥在同一机器上同一时刻只能存在一个。
4·This function gets a pointer to the mutex it is trying to lock.
这个函数会获得一个指向它正在尝试锁定的互斥的指针。
5·However, a mutex should accompany each condition variable.
不过,每个条件变量都应该伴有一个互斥。
1·Once you have it, no one can take it away from you until you put it down. The process of picking up the unique object is called locking, or acquiring, the mutex.
占有这个惟一物体的过程就叫做锁定或者获得互斥量。
2·The function primarily used for this is pthread_cond_wait . It takes two arguments; the first is a pointer to a condition variable, and the second is a locked mutex.
函数pthread_cond_wait主要就是用于阻塞线程的,它有两个参数;第一个是一个指向条件变量的指针,第二个是一个锁定了的互斥量。
3·When invoked, pthread_cond_wait unlocks the mutex and then pauses execution of its thread.
当pthread_cond_wait被调用后,它解锁互斥量并停止线程的执行。
4·Main thread: Lock mutex and increment threadcount.
主线程:锁定互斥量并增量threadcount。
5·Finally, the first thing any thread tries to do when waking up from pthread_cond_wait is re-lock the mutex it unlocked when initially called.
最后,当一个线程从调用pthread_cond_wait而被唤醒时,要做的第一件事就是重新锁定它在最初调用时解锁的那个互斥量。
1·Meanwhile, another handle you forced closed was reused as a mutex handle, which is used to help prevent data from being corrupted.
同时,另一个句柄您强制关闭时重用作为用于帮助防止数据被损坏一个互斥体句柄。
2·I know it has something to do with some mythical thing called a mutex, rarely can I find someone that bothers to stop and explain what one of these are.
我知道它是与一些神秘的东西叫一个互斥体,很少我可以找人困扰停下来解释其中之一是。
3·Open an existing named mutex, specifying the desired security access.
打开现有的已命名互斥体,并指定所需的安全访问权。