java多執行緒,如何防止髒讀資料

2021-09-07 12:23:34 字數 876 閱讀 9887

多執行緒容易「非執行緒安全」的情況,是由於用了全域性變數,而又沒有很好的控制起情況。所以無論做什麼程式,謹慎使用全域性變數

"非執行緒安全"其實會在多個執行緒對同乙個物件中的例項變數進行併發訪問時發生,產生的後果就是「髒」讀。

如以下**就會出現「髒」讀的情況:

package

com.ming.thread.t1;

public

class

count

catch

(interruptedexception e)

system.out.println(count);

}else

}}

建立兩個執行緒:

package

com.ming.thread.t1;

public

class threada extends

thread

public

void

run()

}

package

com.ming.thread.t1;

public

class threadb extends

thread

public

void

run()

}

在建立乙個測試類:

package

com.ming.thread.t1;

public

class

test

}

最後輸出:200 200,顯然出現了髒讀資料了。

最後將變數儲存在方法中,這個問題解決。

所以寫**要注意這個問題了..

Java 多執行緒學習筆記 4 多執行緒共享資料

我們經常說某個變數是執行緒非安全的,某個變數是執行緒安全,這裡 是否安全 針對的是類的例項變數,如果是方法內部的私有變數,不會存在這個問題 package smaug.cloud.provider.thread.t7 created by naonao on 17 12 10.public clas...

java多執行緒實現資料共享

練習題 賣100個蘋果,實現資料共享。新建乙個執行緒有兩種方式 1.繼承thread類 2.是實現runnable的方式 那我們就先使用第一種方式來實現 第一步 存在資料共享 author liujun class sharethread extends thread catch interrupt...

python3爬蟲中如何防止多執行緒出錯?

最近的溫度已經能感受到寒冬的冷意了,動物們的遷徙也早就完成。那麼大家應該知道,為了防止遷徙途中走錯路,動物的集體遷徙是有乙個領頭的,它會帶領集體走向更溫暖的地帶,可能這點平時我們沒怎麼注意過。這種應用在多執行緒中也有體現,為了不讓其他的執行緒出現混亂,都會有乙個主線程進行控制,這就是領頭的作用,接下...