對多執行緒原子性的理解

  • 多執行緒原子性的理解:一個操作要麼全部執行完畢,不會受到干擾而被中斷;要麼全都不執行。
  • 對於多執行緒中操作共享變數的操作,要保證它的原子性。
    • 在一個類中有共享變數count,開啟一百個執行緒對其進行count++操作,每個執行緒對count加一百次。
    • count變數是屬於共享變數,在每個執行緒操作它的時候,需要先把它讀取到自己的工作記憶體中。
    • 如果說A執行緒讀取了count,這時候cpu分配了時間片給B執行緒,B執行緒也讀取到了count,並且進行了count++操作,但是還沒有寫會主記憶體。
    • 這時候cpu分配時間片給A執行緒,它進行count++操作,同時寫會主記憶體,又分配給執行緒B,同時將操作寫會主執行緒。
    • 這就屬於執行緒A的操作被執行緒B干擾而中斷,並沒有確保原子性。
Tags: