歸納一下 C 執行緒同步的幾種方法

2021-05-09 00:17:27 字數 464 閱讀 8451

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

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

一、volatile關鍵字

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

www.bitscn.com

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

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

歸納一下 C 執行緒同步的幾種方法

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

歸納一下 C 執行緒同步的幾種方法

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

歸納一下 C 執行緒同步的幾種方法

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