天天看點

高并發處理包|學習筆記

開發者學堂課程【Java 面試疑難點串講 1:面試技巧及語言基礎:高并發處理包】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/24/detail/510

高并發處理包

内容介紹:

1. java.util.concurrent

2. ConcurrentMap

3. HashMap、Hashtable、 ConcurrentHashMap 有什麼差別?

java.util.concurrent

java.util.concurrent 包從 JDK1.5 添加到 JDK 系統,主要目的是進行高并發通路的處理,通過這個程式實作的開發包都将基于線程池的高速操作完成。

四種線池:任意擴張的線程池、定長線程池、線程排程池、單線程池

在進行項目的開發過程中,如果某一個操作按照原始方式進行代碼開發,則可以無限制的進行線程擴充

class Member{}

前提:公用資訊需要進行重複使用.

ConcurrentMap

public interface ConcurrentHashMap<K,V> extends Map<K,V>

​依然是Map 接口的子類,操作的方法還是以 Map 接口定義為主.

而對于接口有一個特點:不同的子類針對于同一方法有不同的實作。

HashMap、Hashtable、 ConcurrentHashMap有什麼差別?

Ø Hashtable:進行公共資料儲存的時候線程的安全性最高,因為同一時刻隻允許一個線程進行操作。

Ø HashMap:所有的方法都屬于異步處理,屬于非線程安全,這樣可以保證操作多個使用者并發通路,但是不安全。

Ø ConcurrentHashMap:可以發現在進行資料存儲或讀取時并不是簡單的按照 hashCode進行簡單存放,而是經過了處理以保證高速的響應,速度快,但是需要有一個并發通路的Map高效資料。

高并發處理包|學習筆記

例如:現在有一些内容需要臨時記錄在一個 Map 集合裡面,這個内容有可能有幾類使用者去看:送餐員 客戶 管理者。

這時該集合就一定是一個公共的集合,對于這樣的公共集合資料,就必須進行快速響應而且還需要可以儲存大量的内容。