執行緒資料不一致例項

2021-08-06 01:51:42 字數 360 閱讀 5427

package kkkk;

public class sharedata

private static class sharethread1 implements runnablecatch(interruptedexception e)}}

}private static class  sharethread2 implements runnable}}

<1>當執行緒1判斷之後,條件通過進入while迴圈,隨後sleep狀態啟動.

<2>此時執行緒2進入,修改了data並完成data++操作,data值變為100.

<3>執行緒1啟用,開始輸出,但此時輸出的是執行緒2執行過後的結果,輸出值是100,並不是預想的10.

快取不一致

當程式在執行過程中,會將運算需要的資料從主存複製乙份到cpu的快取記憶體當中,那麼cpu進行計算時就可以直接從它的快取記憶體讀取資料和向其中寫入資料,當運算結束之後,再將快取記憶體中的資料重新整理到主存當中。舉個簡單的例子 i i 1。當執行緒執行這個語句時,會先從主存當中讀取i的值,然後複製乙份到...

Redis Mysql資料不一致問題

目前各個大專案中多多少少用了寫redis快取技術,通過對redis中資料的讀取來減少對db的壓力。那麼在讀 寫兩個分離的技術中就容易造成,資料庫和快取不一致的問題 當使用者在更新資料時,在第二個步驟還未執行,但是此時又通過獲取資料介面,此時快取已經刪除,但是資料庫中還是老資料,那麼就會將老資料重新寫...

version magic 不一致問題

碰到乙個問題,在開發過程中發現以前編譯的模組載入失敗了。wlan version magic 4.1.15 gfb2dbf6 smp preempt mod unload armv7 p2v8 should be 4.1.15 ge5de83b dirty smp preempt mod unloa...