当一个线程调用时pthread_cond_signal(),Unix网络编程说pthread_cond_signal()只会有一个线程,因为它不是pthread_cond_broadcast().这意味着没有竞争条件.但是,本书没有说明将通知哪个主题,以及如何通知.该函数是否随机唤醒线程?
我知道C++中的volatile 是如何工作的.但是,我仍然对为什么我们需要挥发性感到困惑.我认为唯一的原因是我们需要监听变量是否发生了变化,如下面的代码所示:
volatile int some_int = 100;
while(some_int==100) {
doSomething()
}
Run Code Online (Sandbox Code Playgroud)
程序员需要知道some_int这个词是否改变了,所以他使用"volatile".我可以使用关键词"静态"吗?
大多数情况下,我认为如果在多线程中需要同步,我们应该互斥(锁定)以进行同步.请原谅我可怜的英文:)