執行緒安全心得

2021-08-19 13:32:12 字數 584 閱讀 2009

一直以來對於執行緒安全都理解的不是太明白,今天在看多執行緒併發的時候,突然有了點自己的小感悟,寫出來增加一下自己的認識。

通常我們的應用在處理一些耗時操作的時候,都會新建立乙個執行緒去做這些耗時的操作,以免影響使用者體驗。正常情況我們只建立乙個執行緒去操作那塊儲存空間,是不會有問題的,取到的資料就是我們想要的資料,但是,很多時候我們會有很多介面去做耗時的操作,而使用者不會等待乙個耗時操作的結束,此時就會碰到多個執行緒去訪問相同的記憶體單元。例如,我們有兩個執行緒同時去運算元據庫,由於相同的操作沒有做限制,兩個執行緒獲取到了相同的資料,然後都分別做了修改,再儲存回資料庫,由於後儲存成功的執行緒,使用的不是最新的資料庫內容,當他儲存成功後,那麼剛剛完成修改的內容,就會被該執行緒的修改所覆蓋,造成實際資料與預期資料的不一致。

所謂的執行緒安全問題,就是因為我們取到快取的值,和我們實際儲存位置的值在修改前已經不一致了。就像我們教課書裡面的說的,我們有個倉庫,存放著50件商品,每賣出一件就減1,為0就表示賣完了,一百個人同時查詢該產品,大家獲取的內容是一樣的,有50件商品,然後100個人同時去選擇了購買,因為系統給他們的值都是50,所以每個人都可以做減一操作,然後系統被一次次更新為49,造成該現象的原因就是因為使用者的快取與實際的庫存是不一致的。

學習《c c 程式設計師實用大全》心得(二)

很高興,學習 c c 系列又出二了。這篇文章將要講一講 cin cout 究竟做了什麼事。什麼叫 c 有魔力的操作符 我還不太了解,因為確實不能理解操作符在類庫裡面是怎樣定義的,或著在類庫裡面定不定義。但文章中說cin cout這些識別符號不是建立在c 有魔力的操作符是可以理解的。首先,cin co...

執行緒安全與執行緒不安全

執行緒安全是針對多執行緒來講的,如果所使用的公用變數在多執行緒下沒有被保護機制時,變數結果會和理論值不一致,這樣就叫作執行緒不安全,相反公用變數在保護機制下工作,就不會出現 隨機 變化,這時叫執行緒安全。執行緒安全 在多執行緒中使用時,不用自已做同步處理.執行緒不安全 在多執行緒中使用時,必須做執行...

執行緒安全與執行緒不安全

執行緒安全是針對多執行緒來講的,如果所使用的公用變數在多執行緒下沒有被保護機制時,變數結果會和理論值不一致,這樣就叫作執行緒不安全,相反公用變數在保護機制下工作,就不會出現 隨機 變化,這時叫執行緒安全。執行緒安全 在多執行緒中使用時,不用自已做同步處理.執行緒不安全 在多執行緒中使用時,必須做執行...