激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java 單例模式線程安全問題

Java 單例模式線程安全問題

2021-01-03 15:13flycw Java教程

這篇文章主要介紹了Java 單例模式線程安全問題的相關資料,希望通過本文大家能了解掌握單例模式中線程安全的使用方法,需要的朋友可以參考下

Java 單例模式線程安全問題

SpringIOC容器默認提供bean的訪問作用域是單例模式。即在整個application生命周期中,只有一個instance。因此在多線程并發下,會有線程安全風險。我們在MVC框架下的servlet就是線程安全的。由于該servlet是在客戶端,多并發相對少,但是對于web service端,需要考慮到。

ThreadLocal類:為每一個線程提供了一個獨立的變量(實例)副本,從各將各個不同的實例訪問isolation。
在同步鎖機制中,后來者線程等待先行線程完成后,才能訪問該成員變量。而ThreadLocal實現實例的復制而隔離對象訪問數據沖突。同時也能夠少量解決scope為prototype訪問模式下大量實例生命周期管理的消耗和負擔。是“以時間換空間”和“以空間換時間”的兩種實現。前者僅提供唯一變量,讓不同的線程排隊訪問,而后者為每一個線程都提供了一份拷貝,因此可以同時訪問而互不影響,同時該拷貝存儲于內存中,下次再次訪問時候不再重新生成實例,減少服務器資源消耗。 

我們知道在一般情況下,只有無狀態的Bean才可以在多線程環境下共享,在Spring中,絕大部分Bean都可以聲明為singleton作用域。就是因為Spring對一些Bean(如RequestContextHolder、TransactionSynchronizationManager、LocaleContextHolder等)中非線程安全狀態采用ThreadLocal進行處理,讓它們也成為線程安全的狀態,因為有狀態的Bean就可以在多線程中共享了。

線程安全問題:由全局變量及靜態變量引起,若每個線程中對全局變量、靜態變量只有讀操作,而無寫操作,一般來說,這個全局變量是線程安全的;若有多個線程同時執行寫操作,一般都需要考慮線程同步,否則就可能影響線程安全。

1) 常量始終是線程安全的 (值恒定)
2)每次調用方法前都新建一個實例是線程安全的。(不同實例相互隔離)
3)局部變量是線程安全的(隔離)

因為每執行一個方法,都會在獨立的空間創建局部變量,它不是共享的資源。局部變量包括方法的參數變量和方法內變量。

有狀態:有數據存儲、更改功能。有狀態對象(Stateful Bean),有實例變量的對象  ,可以保存數據,是非線程安全的。

無狀態:就是一次操作,不能變更數據。無狀態對象(Stateless Bean),沒有實例變量的對象,不能保存數據,是不變類,是線程安全的。在spring中單例模式是共享實例,以達到提高性能。有狀態的Bean,多線程環境下不安全,那么適合用Prototype原型模式。Prototype: 每次對bean的請求都會創建一個新的bean實例。

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://flycw.iteye.com/blog/2360501

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品欧美一区二区精品久久 | 精品伊人| 美国av片在线观看 | 成年性羞羞视频免费观看 | 欧美人人干 | 久久久久久久久久久久久久久伊免 | 原来神马影院手机版免费 | 毛片一区二区三区 | 99热高清| 黄色免费小网站 | 成人午夜免费国产 | 国产乱淫av | 艹逼视频污 | 免费国产a | 久久影院yy6080 | china对白普通话xxxx | 久草在线观看福利 | 中文字幕欧美视频 | 毛片视频在线免费观看 | 亚洲码无人客一区二区三区 | 一级成人免费 | 日本免费一区二区三区四区 | 成人在线观看一区 | av手机在线免费播放 | 成年人在线视频 | 欧洲精品久久 | www.91成人| 精品欧美一区二区精品久久 | 亚洲精品一区中文字幕 | 久久骚 | 久久久无码精品亚洲日韩按摩 | 免费在线观看午夜视频 | 国产精品久久久久久久久久东京 | 九一国产精品 | 黄色作爱视频 | av不卡免费在线观看 | 国产精品一区网站 | 色妇视频 | 亚洲一区二区成人 | 老师你怎么会在这第2季出现 | 国产人成免费爽爽爽视频 |