在了解了常規執行緒之后,我正在學習 pthreads。通常,當我們使用布爾執行緒物件時,我們將其宣告為 volatile 物件,如下所示volatile bool thread_lock;:我們是否也需要在 pthread 物件上執行此操作,特別是pthread_mutex_t在需要時,還是它自己處理它?
我查看了pthread_mutex_t宣告,發現它沒有 volatile 宣告。
應該是volatile pthread_mutex_t my_obj;還是pthread_mutex_t my_obj;
uj5u.com熱心網友回復:
通常,當我們使用布爾執行緒物件時,我們將其宣告為 volatile 物件,如下所示:
volatile bool thread_lock;
這種使用volatile從未成為標準。一些平臺將這些語意添加volatile為令人遺憾和令人困惑的擴展。
另一個答案中更繁瑣的細節,但簡短的版本是你永遠不應該使用volatile同步。這既不是必要的,也不是充分的。
POSIX 執行緒庫會為您處理一切 - 如果您需要撰寫volatile以使其作業,它會在其聯機幫助頁和檔案中說明。它沒有,因為你沒有。
更便攜的是,C 從 2011 年開始就有了自己的標準并發支持,并且非常成熟。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/529407.html
標籤:C 多线程线程
下一篇:Java執行緒擺動
