0
在我的問題中,我使用pthread_create()創建一個pthread,比如myThread。pthread更新一個公共變量
它們都爲主線程共享一個公共變量「done」,以告訴myThread停止從套接字讀取數據。
在我的並行線程,我有一個循環:
// done is a common variable
while (!done && socket->read(&buffer) == OK) {
// do something....
}
有些時候,我想告訴MyThread的停止從套接字讀取,所以我做的:
done = true;
void *test;
pthread_join(myThread, &test);
這會不會導致比賽條件?即myThread會在阻塞讀取調用之前看不到我的主線程更新'done'的值?