執行緒安全是怎麼回事

2021-04-13 09:32:12 字數 521 閱讀 9435

如果你的**所在的程序中有多個執行緒在同時執行,而這些執行緒可能會同時執行這段**。如果每次執行結果和單執行緒執行的結果是一樣的,而且其他的變數的值也和預期的是一樣的,就是執行緒安全的。

比如乙個 arraylist 類,在新增乙個元素的時候,它可能會有兩步來完成:1. 在 items[size] 的位置存放此元素;2. 增大 size 的值。

在單執行緒執行的情況下,如果 size = 0,新增乙個元素後,此元素在位置 0,而且 size=1;

而如果是在多執行緒情況下,比如有兩個執行緒,執行緒 a 先將元素存放在位置 0。但是此時 cpu 排程執行緒a暫停,執行緒 b 得到執行的機會。執行緒b也向此 arraylist 新增元素,因為此時 size 仍然等於 0 (注意哦,我們假設的是新增乙個元素是要兩個步驟哦,而執行緒a僅僅完成了步驟1),所以執行緒b也將元素存放在位置0。然後執行緒a和執行緒b都繼續執行,都增加 size 的值。

那好,現在我們來看看 arraylist 的情況,元素實際上只有乙個,存放在位置 0,而 size 卻等於 2。這就是「執行緒不安全」了,呵呵。 

TBox怎麼回事

新公司有一款tbox的產品,但我對於tbox了解甚少,對車聯網也連線甚少。對網路上的一些資料,我也應該做一些整合,加上這段時間在公司接觸到的事情,完成這篇部落格,寫部落格也是一種激勵自己學習的手段。tbox上通雲端tsp telematics service provider,遠端服務提供商 下連汽...

索引失效,怎麼回事!

索引失效,可以從一下幾種原因中分析 在where條件的等號左側中使用函式 where date create at 2019 01 01 帶有列的函式計算值,導致索引無法使用。表關聯字符集格式以及排序方式不一致 關注charset和collation sql寫法錯誤導致的索引失效比較常見的例子是,我...

電腦頻繁斷網怎麼回事 眼睛有閃光感怎麼回事

在眼科門診有很多患者描述病情時不少人表示眼睛出現過出現過突然一閃的亮光,這也就是眼科稱的閃光感,那麼,眼睛有閃光感怎麼回事呢?出現閃光感該怎麼辦呢?下面我們就來看看眼病醫院專家怎麼說。眼睛有閃光感怎麼回事?閃光感其實是一種很需要引起重視的症狀,除了最常見的原因玻璃體後脫離,有時候它還是一些嚴重疾病的...