C 執行緒同步方法彙總

2021-06-05 21:38:23 字數 466 閱讀 5014

我們在程式設計的時候,有時會使用多執行緒來解決問題,比如你的程式需要在後台處理一大堆資料,但還要使使用者介面處於可操作狀態;或者你的程式需要訪問一些外部資源如資料庫或網路檔案等。這些情況你都可以建立乙個子執行緒去處理,然而,多執行緒不可避免地會帶來乙個問題,就是執行緒同步的問題。如果這個問題處理不好,我們就會得到一些非預期的結果。

在網上也看過一些關於執行緒同步的文章,其實執行緒同步有好幾種方法,下面我就簡單的做一下歸納。

一、volatile關鍵字

volatile是最簡單的一種同步方法,當然簡單是要付出代價的。它只能在變數一級做同步,volatile的含義就是告訴處理器, 不要將我放入工作記憶體, 請直接在主存操作我。(【**

www.bitscn.com

】)因此,當多執行緒同時訪問該變數時,都將直接操作主存,從本質上做到了變數共享。

能夠被標識為volatile的必須是以下幾種型別:(摘自msdn)

執行緒同步的各種方法彙總

目錄 互斥鎖讀寫鎖 自旋鎖條件變數 屏障 兩種狀態 1 加鎖,pthread mutex lock 2 不加鎖,pthread mutex unlock 三種狀態 1 讀模式下的加鎖狀態,多個執行緒可以同時占有該鎖,pthread rwlock rdlock 2 寫模式下的加鎖狀態,只有乙個執行緒占...

執行緒方法彙總

1 isalive 作用 判斷當前的執行緒是否處於活動狀態 活動狀態是指執行緒已經啟動且尚未終止,執行緒處於正在執行或準備開始執行的狀態,就認為執行緒是存活的執行緒活動狀態返回true,否則返回false 2 setdameon boolean boo 作用 設定守護執行緒,boo為true是守護執...

C 執行緒同步

volatile是最簡單的一種同步方法,當然簡單是要付出代價的。它只能在變數一級做同步,volatile的含義就是告訴處理器,不要將我放入工作記憶體,請直接在主存操作我。www.bitscn.com 因此,當多執行緒同時訪問該變數時,都將直接操作主存,從本質上做到了變數共享。能夠被標識為volati...