- 不可變對象(immutable objects):同步類示例、不可變對象策略。
- 不可變對象能避免線程衝突、內存一致問題,但程序員一般不願意用,它們關注對象創建的消耗而不是對象更新消耗,其實不可變對象的創建消耗完全可以由其他方面帶來的效率低效,如gc消耗低、不必寫保護多線程下可變對象不遭到破壞的代碼。
- 可變對象會存在兩個線程干擾的情況,如兩個語句之間有另外的線程改變對象的狀態,那麼兩個語句獲取的對象狀態就會不一致,所以就需要利用同步代碼塊將兩個語句鎖起來。
- 不可變對象,final class、private final域、引用型變量被方法返回時用它的copy。
不可變對象(immutable objects)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
進程線程的的作用和區別
MarkSaas
2020-07-08 11:46:10
詳解Java線程狀態及狀態轉換
快乐柠檬
2020-07-07 20:23:31
JAVA序列化和反序列化的常見格式
未知之谜
2020-07-07 19:29:10
C++信號量condition_variable
Liu_Xiao_Ming
2020-07-07 12:36:21
JAVA思維導圖系列:多線程中級
hacke2
2020-07-07 05:13:19
還在使用Future輪詢獲取結果嗎?CompletionService快來了解下吧。
java金融
2020-07-07 03:31:39
併發隨筆(JUC開發包之重入鎖)
各种西瓜
2020-07-07 01:50:14
Java併發——Semaphore
吴声子夜歌
2020-07-07 01:09:47
Java併發——CompletionService
吴声子夜歌
2020-07-07 01:09:47
爲什麼synchronized無法禁止指令重排,卻能保證有序性?
fct2001140269
2020-07-07 00:27:52
淘寶雙11,億級流量高併發是怎麼抗住的?看完這篇你就明白了
fct2001140269
2020-07-07 00:27:52
Python多線程入門學習
写.代码
2020-07-06 21:32:13
Lock接口,和Synchronized區別,分佈式鎖
gghh2015
2020-07-06 21:32:02