Java線程安全的常用類_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
線程安全類
在集合框架中,有些類是線程安全的,這些都是jdk1.1中的出現(xiàn)的。在jdk1.2之后,就出現(xiàn)許許多多非線程安全的類。 下面是這些線程安全的同步的類:
vector:就比arraylist多了個(gè)同步化機(jī)制(線程安全),因?yàn)樾瘦^低,現(xiàn)在已經(jīng)不太建議使用。在web應(yīng)用中,特別是前臺(tái)頁(yè)面,往往效率(頁(yè)面響應(yīng)速度)是優(yōu)先考慮的。
statck:堆棧類,先進(jìn)后出
hashtable:就比hashmap多了個(gè)線程安全
除了這些之外,其他的集合大都是非線程安全的類和接口。
線程安全的類其方法是同步的,每次只能一個(gè)訪問(wèn)。是重量級(jí)對(duì)象,效率較低。
其他:
1. hashtable跟hashmap的區(qū)別
hashtable是線程安全的,即hashtable的方法都提供了同步機(jī)制;hashmap不是線程安全的,即不提供同步機(jī)制 ;hashtable不允許插入空值,hashmap允許!
2. 多線程并發(fā)修改一 個(gè)集合怎么辦?
用老的Vector/Hashtable類
StringBuffer是線程安全,而StringBuilder是線程不安全的。對(duì)于安全與不安全沒(méi)有深入的理解情況下,易造成這樣的錯(cuò)覺(jué),如果對(duì)于StringBuffer的操作均是線程安全的,然而,Java給你的保證的線程安全,是說(shuō)它的方法是執(zhí)行是排它的,而不是對(duì)這個(gè)對(duì)象本身的多次調(diào)用情況下,還是安全的??纯聪逻叺睦樱赟tringBufferTest中有一個(gè)數(shù)據(jù)成員contents它是用來(lái)擴(kuò)展的,它的每一次append是線程安全的,但眾多次append的組合并不是線程安全的,這個(gè)輸出結(jié)果不是太可控的,但如果對(duì)于log和getContest方法加關(guān)鍵字synchronized,那么結(jié)果就會(huì)變得非常條理,如果換成StringBuider甚至是append到一半,它也會(huì)讓位于其它在此基礎(chǔ)上操作的線程
以上所述是小編給大家介紹的Java線程安全的常用類_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Java線程安全解決方案(synchronized,ReentrantLock,Atomic)
- 如何實(shí)現(xiàn)Java線程安全問(wèn)題
- Java線程安全和鎖Synchronized知識(shí)點(diǎn)詳解
- Java線程安全的計(jì)數(shù)器簡(jiǎn)單實(shí)現(xiàn)代碼示例
- Java線程安全與非線程安全解析
- Java線程安全基礎(chǔ)概念解析
- 基于java線程安全問(wèn)題及原理性分析
- Java線程安全問(wèn)題小結(jié)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- Java線程安全中的單例模式
- Java8新特性之線程安全日期類
相關(guān)文章
java實(shí)現(xiàn)163郵箱發(fā)送郵件到qq郵箱成功案例
這篇文章主要為大家分享了java實(shí)現(xiàn)163郵箱發(fā)送郵件到qq郵箱成功案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
springboot application無(wú)法使用$獲取pom變量的問(wèn)題及解決
這篇文章主要介紹了springboot application無(wú)法使用$獲取pom變量的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
java.text.DecimalFormat類十進(jìn)制格式化
這篇文章主要為大家詳細(xì)介紹了java.text.DecimalFormat類十進(jìn)制格式化的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
springboot 使用yml配置文件給靜態(tài)變量賦值教程
這篇文章主要介紹了springboot 使用yml配置文件給靜態(tài)變量賦值教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Mybatis-plus foreach拼接字符串查詢無(wú)數(shù)據(jù)返回問(wèn)題
這篇文章主要介紹了Mybatis-plus foreach拼接字符串查詢無(wú)數(shù)據(jù)返回問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03

