我在线程A中有以下代码,它阻止使用 pthread_cond_wait()
pthread_mutex_lock(&my_lock);
if ( false == testCondition )
pthread_cond_wait(&my_wait,&my_lock);
pthread_mutex_unlock(&my_lock);
Run Code Online (Sandbox Code Playgroud)
我在线程B中有以下代码,它代表线程A
pthread_mutex_lock(&my_lock);
testCondition = true;
pthread_cond_signal(&my_wait);
pthread_mutex_unlock(&my_lock);
Run Code Online (Sandbox Code Playgroud)
如果没有其他线程,如果pthread_cond_signal(&my_wait)移出临界区块,它会有什么不同,如下所示?
pthread_mutex_lock(&my_lock);
testCondition = true;
pthread_mutex_unlock(&my_lock);
pthread_cond_signal(&my_wait);
Run Code Online (Sandbox Code Playgroud)