条件变量是否有一个数字 - 它与信号相关的信号的次数(如信号量)?即,如果五个线程发出条件变量信号,并假设所有条件都被取消,那么条件变量是否可以被其他五个线程等待,之后呢?或者,在调用wait之后只有一个线程会解锁吗?
答案 0 :(得分:2)
如果五个线程发出条件变量的信号,并假设它们全部被取消,那么条件变量是否可以被其他五个线程等待,之后呢?
虽然这是特定于语言和实现的,但通常答案是不一个数字。如果在没有的情况下发出的信号,那么任何线程都在等待该条件,那么信号就会丢失。如果生成5个信号然后线程等待该条件,则必须等待 next 信号被传递。
现在问题是关于C(我假设POSIX线程)然后我可以添加来自pthread_cond_signal()
manual的详细信息:
如果cond上当前没有线程被阻止,pthread_cond_broadcast()和pthread_cond_signal()函数将无效。
没有计数器跟踪POSIX状态信号。