摘要:
并發(多線程)設計模式不同于傳統設計模式,更關注的是并發編程中特定場景的解決方案。對于并發設計模式同學們務必理解。 終止線程的設計模式 思考:在一個線程 T1 中如何正確安全的終止線程 T2? 錯誤思路1:使用線程對象的 stop() 方法停止線程 stop 方法會真正殺死線程,如果這時線程鎖住了共 閱讀全文
posted @ 2022-03-09 00:41
路仁甲
閱讀(252)
評論(0)
推薦(1)
摘要:
Callable&Future&FutureTask 直接繼承Thread或者實現Runnable接口都可以創建線程,但是這兩種方法都有一個問題就是:沒有返回值,也就是不能獲取執行完的結果。因此java1.5就提供了Callable接口來實現這一場景,而Future和FutureTask就可以和Ca 閱讀全文
posted @ 2022-03-09 00:38
路仁甲
閱讀(89)
評論(0)
推薦(1)
摘要:
Disruptor簡介 Disruptor是英國外匯交易公司LMAX開發的一個高性能隊列,研發的初衷是解決內存隊列的延遲問題(在性能測試中發現竟然與I/O操作處于同樣的數量級)。基于Disruptor開發的系統單線程能支撐每秒600萬訂單,2010年在QCon演講后,獲得了業界關注。2011年,企業 閱讀全文
posted @ 2022-03-09 00:35
路仁甲
閱讀(802)
評論(0)
推薦(1)
摘要:
任務類型 思考: 線程池的線程數設置多少合適? 我們調整線程池中的線程數量的最主要的目的是為了充分并合理地使用 CPU 和內存等資源,從而最大限度地提高程序的性能。在實際工作中,我們需要根據任務類型的不同選擇對應的策略。 CPU密集型任務 CPU密集型任務也叫計算密集型任務,比如加密、解密、壓縮、計 閱讀全文
posted @ 2022-03-09 00:33
路仁甲
閱讀(119)
評論(0)
推薦(0)
摘要:
阻塞隊列介紹 Queue接口 public interface Queue<E> extends Collection<E> { //添加一個元素,添加成功返回true, 如果隊列滿了,就會拋出異常 boolean add(E e); //添加一個元素,添加成功返回true, 如果隊列滿了,返回fa 閱讀全文
posted @ 2022-03-09 00:30
路仁甲
閱讀(216)
評論(0)
推薦(0)
摘要:
讀寫鎖 現實中有這樣一種場景:對共享資源有讀和寫的操作,且寫操作沒有讀操作那么頻繁(讀多寫少)。在沒有寫操作的時候,多個線程同時讀一個資源沒有任何問題,所以應該允許多個線程同時讀取共享資源(讀讀可以并發);但是如果一個線程想去寫這些共享資源,就不應該允許其他線程對該資源進行讀和寫操作了(讀寫,寫讀, 閱讀全文
posted @ 2022-03-09 00:26
路仁甲
閱讀(46)
評論(0)
推薦(0)
摘要:
Semaphore Semaphore介紹 Semaphore,俗稱信號量,它是操作系統中PV操作的原語在java的實現,它也是基于AbstractQueuedSynchronizer實現的。 Semaphore的功能非常強大,大小為1的信號量就類似于互斥鎖,通過同時只能有一個線程獲取信號量實現。大 閱讀全文
posted @ 2022-03-09 00:23
路仁甲
閱讀(77)
評論(0)
推薦(0)
摘要:
AQS原理分析 什么是AQS java.util.concurrent包中的大多數同步器實現都是圍繞著共同的基礎行為,比如等待隊列、條件隊列、獨占獲取、共享獲取等,而這些行為的抽象就是基于AbstractQueuedSynchronizer(簡稱AQS)實現的,AQS是一個抽象同步框架,可以用來實現 閱讀全文
posted @ 2022-03-09 00:21
路仁甲
閱讀(102)
評論(0)
推薦(0)
摘要:
Java共享內存模型帶來的線程安全問題 思考: 兩個線程對初始值為 0 的靜態變量一個做自增,一個做自減,各做 5000 次,結果是 0 嗎? @Slf4j public class SyncDemo { private static volatile int counter = 0; public 閱讀全文
posted @ 2022-03-09 00:17
路仁甲
閱讀(139)
評論(0)
推薦(0)
摘要:
Atomic原子操作類介紹 在并發編程中很容易出現并發安全的問題,有一個很簡單的例子就是多線程更新變量i=1,比如多個線程執行i++操作,就有可能獲取不到正確的值,而這個問題,最常用的方法是通過Synchronized進行控制來達到線程安全的目的。但是由于synchronized是采用的是悲觀鎖策略 閱讀全文
posted @ 2022-03-09 00:06
路仁甲
閱讀(267)
評論(0)
推薦(0)
浙公網安備 33010602011771號