歡迎來到《並發王者課》,本文是該系列文章中的第17篇。 在並發編程中,信號量是線程同步的重要工具。在本文中,我將帶你認識信號量的概念、用法、種類以及Java中的信號量。 信號量(Semaphore) 是線程間的同步結構,主要用於多線程協作時的信號傳遞,以及對共享資源的保護、防止競態的發生 ...
歡迎來到 並發王者課 ,本文是該系列文章中的第 篇。 在黃金系列中,我們介紹了並發中一些問題,比如死鎖 活鎖 線程飢餓等問題。在並發編程中,這些問題無疑都是需要解決的。所以,在鉑金系列文章中,我們會從並發中的問題出發,探索Java所提供的鎖的能力以及它們是如何解決這些問題的。 作為鉑金系列文章的第一篇,我們將從Lock接口開始介紹,因為它是Java中鎖的基礎,也是並發能力的基礎。 一 理解Java ...
2021-06-16 10:10 2 210 推薦指數:
歡迎來到《並發王者課》,本文是該系列文章中的第17篇。 在並發編程中,信號量是線程同步的重要工具。在本文中,我將帶你認識信號量的概念、用法、種類以及Java中的信號量。 信號量(Semaphore) 是線程間的同步結構,主要用於多線程協作時的信號傳遞,以及對共享資源的保護、防止競態的發生 ...
歡迎來到《並發王者課》,本文是該系列文章中的第21篇,鉑金中的第8篇。 在上一篇文章中,我們介紹了CountDownLatch的用法。在協調多線程的開始和結束時,CountDownLatch是個非常不錯的選擇。而本文即將給你介紹的CyclicBarrier則更加有趣,它在能力 ...
在前面的文章中,我們已經體驗過synchronized的用法,並對鎖的概念和原理做了簡單的介紹。然而,你可能已經察覺到,有一個概念似乎總是和synchronized、鎖這兩個概念如影相隨,很多人也比較喜歡問它們之間的區別,這個概念就是Monitor,也叫監視器。 所以,在講解完 ...
歡迎來到《並發王者課》,本文是該系列文章中的第22篇,鉑金中的第9篇。 在前面的文章中,我們已經介紹了ReentrantLock,CountDownLatch,CyclicBarrier,Semaphore等同步工具。在本文中,將為你介紹最后一個同步工具,即Exchanger. ...
歡迎來到《並發王者課》,本文是該系列文章中的第15篇。 在上篇文章中,我們介紹了Java中鎖的基礎Lock接口。在本文中,我們將介紹Java中鎖的另外一個重要的基本型接口,即ReadWriteLock接口。 在探索Java中的並發時,ReadWriteLock無疑是重要的,然而理解它卻並不 ...
歡迎來到《並發王者課》,本文是該系列文章中的第18篇。 在線程的同步中,阻塞隊列是一個繞不過去的話題,它是同步器底層的關鍵。所以,我們在本文中將為你介紹阻塞隊列的基本原理,以了解它的工作機制和它在Java中的實現。本文稍微有點長,建議先了解大綱再細看章節。 一、阻塞隊列介紹 在生活中,相信你 ...
歡迎來到《並發王者課》,本文是該系列文章中的第20篇。 在上一篇文章中,我們介紹了Condition的用法。在本文中,將為你介紹CountDownLatch的用法。CountDownLatch是JUC中的一款常用工具類,當你在編寫多線程代碼時,如果你需要協調多個線程的開始和結束動作時,它可 ...
歡迎來到《並發王者課》,本文是該系列文章中的第19篇。 在上一篇文章中,我們介紹了阻塞隊列。如果你閱讀過它的源碼,那么你一定會注意到源碼有兩個Condition類型的變量:notEmpty和notFull,在讀寫隊列時你也會注意到它們是如何被使用的。事實上,在使用JUC中的各種鎖時 ...