如果該方法不涉及寫公共的資源比如一個靜態的變數或者寫文件,修改某個資料庫的值的時候沒有影響
比如你這個類里的方法只是對輸入的參數做一個計算然後返回計算的值就沒有影響。
但是如果是修改公共的資源比如修改資料庫中存儲的一個value則有可能出現問題,如:
public void writeDb(String key, String value) {
collectiondb();
write(key, value);
closeDbCollection();
}
因為Java的線程運行順序是不一定的,可以第一個線程運行完連接資料庫到後掛起了,這時候第二個線程開始運行,如果你的collectiondb()處理使用的是類中的一個實例變數Connection conn來保存資料庫的連接,當第二個線程運行完畢以後conn也被關閉了,第一個線程繼續執行write函數寫資料庫值的時候就會拋出異常。
這是一個例子,還有其他可能產生臟數據的問題
多線程如果使用公共資源的話最好在方法上聲明synchronized關鍵字讓其同步
❷ java中多線程怎麼實現數組對象的共享
例如:一個線程正准備往進去寫數據,突然切到另一個線程它先寫了進入,在切回來這個線程並不知道這個位置已經寫入了數據,所以它還是會傻傻的寫入數據,這樣另一個線程的數據就被覆蓋了。如果是一邊添加 ,一邊遍歷的話程序會產生異常。
所以要用onwritearraylist是最好的選擇,但是注意的是,添加元素時它的性能不是很好 。
❸ java語言支持多線程它能同步共享數據處理不同的事件對嗎
對。根據博客官網相關查詢得知,java語言支持多線程是能同步共享數據處理不同的事件的。Java,是一門面向對象編程語言,1990年代初由詹姆斯·高斯林等人開發出Java語言的雛形。
❹ java多線程機制中線程間可以共享相同的內存單元對還是錯
java多線程機制中線程間可以共享相同的內存單元是對的。根據查詢相關公開信息顯示,同一進程的多個線程間可以共享相同的內存單元,並可利用這些共享單元來實現數據交換、實時通信和必要的同步操作。