pthread_cond_signal函数是否解锁调用线程锁定的互斥锁?

pthread_cond_signal函数是否解锁调用线程锁定的互斥锁?

问题描述:

当我在我的线程函数期间调用'pthread_cond_signal'时,这个调用是否解除了我当前使用的互斥锁? (不是pthread_cond_wait正在等待的那个人)。pthread_cond_signal函数是否解锁调用线程锁定的互斥锁?

只有给予pthread_cond_(timed_)wait()的互斥锁才能解锁,以使其他线程有机会更改条件。在pthread_cond_wait的末尾,互斥锁再次被锁定。 没有其他函数锁定/解锁互斥锁

不,它根本不解锁任何互斥锁。 pthread_cond_wait确实解锁它的互斥锁,当它退出时互斥锁再次被锁定。