Java執行緒安全類
執行緒不安全的類:
HashMap
LinkedHashMap
TreeMap
ArrayList
LinkedList
HashSet
TreeSet
LinkedHashSet
StringBuilder
執行緒安全的類:
ConcurrentHashMap
Hashtable
Vector
CopyOnWriteArrayList
CopyOnWriteArraySet
StringBuffer
需要注意的是,在使用支援執行緒安全的類時,要注意效能問題,比如Hashtable的效能要比ConcurrentHashMap差,還有些類有特殊的使用場景,比如CopyOnWriteArrayList和CopyOnWriteArraySet是使用在讀操作遠遠多於
JDK原始碼concurrent目錄中是一些支援併發訪問的類。除此之外,Java還提供了多種執行緒安全的方式,比如synchronized,ReentrantLock,同步包裝器(Collections.synchronizedXXX)等,根據具體情況由開發設計人員選擇適合的執行緒安全方式。
相關推薦
Java執行緒安全類
執行緒不安全的類: HashMap LinkedHashMap TreeMap ArrayList LinkedList HashSet TreeSet LinkedHashSet StringBuilder 執行緒安全的類: ConcurrentHashMap Hasht
Java併發程式設計(3)-構造執行緒安全類的模式
文章目錄 一、例項限制模式 1.1、 限制變數確保執行緒安全 1.2、分析ArrayList的執行緒安全性 1.3、總結 二、委託執行緒安全模式 2.
java 執行緒安全的全域性計數器-AtomicInteger原子操作類
首先 , 測試一下正常程式碼 public class Test1 { public static int count = 0; public static void main(String[] args) { for (int i =
java執行緒安全的容器類
四、執行緒安全的容器類 Java編碼中,我們經常需要用到容器來程式設計。在併發環境下,Java提供一些已有容器能夠支援併發。 1.Map 在Map類中,提供兩種執行緒安全容器。 java.util.Hashtable Hashtable和H
Java執行緒安全的日期格式化工具類
/** * 日期格式化輔助類 * * @author hkb <br> */ public final class DateUtils { /** 執行緒安全的日期格式物件 */ private static final
Java -- 執行緒( Thread 類 和 Runnable介面 ) , 執行緒安全 .
一、執行緒 執行緒: 程序內部一個獨立執行單元(通向CPU的一條路徑.) 1. Thread類: 常用方法: Thread.currentThread().getName()
Java併發程式設計之set集合的執行緒安全類你知道嗎
Java併發程式設計之-set集合的執行緒安全類 Java中set集合怎麼保證執行緒安全,這種方式你知道嗎? 在Java中set集合是 本篇是《凱哥(凱哥Java:kagejava)併發程式設計學習》系列之《併發集合系列》教程的第二篇: 本文主要內容:Set集合子類底層分別是什麼?基於底層為什麼set的子類可
Java執行緒安全與多執行緒開發
網際網路上充斥著對Java多執行緒程式設計的介紹,每篇文章都從不同的角度介紹並總結了該領域的內容。但大部分文章都沒有說明多執行緒的實現本質,沒能讓開發者真正“過癮”。 從Java的執行緒安全鼻祖內建鎖介紹開始,讓你瞭解內建鎖的實現邏輯和原理以及引發的效能問題,接著說明了Java多執行緒程式設計中鎖的存在是為
Java 執行緒工具類
1. CountDownLatch CountDownLatch首先定義任務次數,並呼叫await()方法等待任務完成。呼叫countDown()方法表明已經完成一項任務,當任務全部完成後,繼續await()方法後的任務。 public class CountDownLatchT
已有的執行緒安全類中新增功能
現在我們要擴充套件一個list,不能破壞它原本的安全性以及相關不變約束和後驗條件,並且不能修改原始碼,該如何做呢。 通常首先想到的方法是繼承list,擴充套件程式碼;其次稍微深入的會用到同步包裝器,然後客戶端加鎖,這種方法一般是可以的;最後可能想到的是使用組合,進而制定一套
非執行緒安全類SimpleDateFormat
SimpleDateFormat是非執行緒安全的,寫處理日期的工具類時候請注意。 問題背景: 專案組的同事在新專案裡寫了一個DateUtil專門處理日期格式化的工具。線上執行後臺日誌偶然發生莫名其妙的錯誤: java.lang.NumberFo
JAVA執行緒-Thread類的方法
常用方法 static Thread currentThread() 返回對當前正在執行的執行緒物件的引用。 long getId()返回該執行緒的識別符號。 String getName()返回該執行緒的名稱。 int getPri
java執行緒安全問題
併發搶票過程中,如果不加同步鎖,就會出現執行緒不安全問題,導致程式碼執行結果出現嚴重問題。另外同一個執行緒啟動多次是不允許的。package sx.test.thread;public class TicketDemo {public static void main(Str
Java-執行緒安全
Java-執行緒安全 0x01 什麼是執行緒安全 執行緒安全是針對某個物件來說,如果當多執行緒訪問此物件時,不用再用額外方式如同步鎖等,總能執行獲得正確結果,那就可以說這個物件程式碼執行緒安全。 0x02 Java中的執行緒安全 Java中執行緒安全強度由強到弱是: 不可
對非執行緒安全類List的一些總結
一個專案的一個功能點,需要從介面接受返回資料,並對返回的資料進行一些業務處理,處理完成之後,新增到一個List<T>中,然後在View中迴圈這個List<T>,展示所有的資料。每次從介面中取回的資料量不等,最多會有上百條。雖說上百條也不算多,但是每條資料都要經過一系列的業務處理,感覺這
執行緒安全類
喂she 當對字串進行修改的時候,需要使用 StringBuffer 和 StringBuilder 類。 和 String 類不同的是,StringBuffer 和 StringBuilder 類的物件能夠被多次的修改,並且不產生新的未使用物件。 StringBuil
關於java執行緒安全問題
執行緒:負責一個程序中的程式碼執行。執行緒是程序中的一個執行路徑。 執行緒安全問題出現的根本原因:1. 存在著兩個或者兩個以上的執行緒。2. 多個執行緒共享了著一個資源, 而且操作資源的程式碼有多句。 執行緒安全問題的解決方案:1. 使用同步程式碼塊格式:synchroni
Java執行緒安全佇列Queue
在Java多執行緒應用中,佇列的使用率很高,多數生產消費模型的首選資料結構就是佇列。Java提供的執行緒安全的Queue可以分為阻塞佇列和非阻塞佇列,其中阻塞佇列的典型例子是BlockingQueue,非阻塞佇列的典型例子是ConcurrentLinkedQue
java執行緒安全之併發Queue(十三)
併發Queue 在併發的佇列上jdk提供了兩套實現,一個是以ConcurrentLinkedQueue為代表的高效能佇列,一個是以BlockingQueue介面為代表的阻塞佇列,無論在那種都繼承自Queue。 如圖繼承Queue共有二十四個:
java執行緒安全之synchronized鎖重入及出現異常鎖自動釋放(五)
科技快訊 11月16日下午訊息,以“Bring AI to Life”為主題的2017百度世界大會今天在北京國貿大酒店和北京嘉裡大酒店舉行。愛奇藝創始人兼CEO龔宇在大會上發表了主題為“愛奇藝·更懂娛樂”的主題演講,龔宇表示愛奇藝對於科技的重視與百