問題的描述與方案的提出 在Spring從XML轉向注解時,為了自身的開發方便,對注解含義進行了擴充( 具體參考本號上一篇文章 )。 這個擴充直接導致了一個問題,就是需要從注解往元注解以及元元注解(即沿着 從下向上 的方向)里傳遞數據。 為了更好的描述 ...
歡迎來到 並發王者課 ,本文是該系列文章中的第 篇,鉑金中的第 篇。 說起ThreadLocal,相信你對它的名字一定不陌生。在並發編程中,它有着較高的出場率,並且也是面試中的高頻面試題之一,所以其重要性不言而喻。當然,它也可能曾經讓你在夜里輾轉反側,或讓你在面試時閃爍其詞。因為,ThreadLocal雖然使用簡單,但要理解它的原理又似乎並不容易。 然而,正所謂明知山有虎,偏向虎山行。在本文中,我 ...
2021-07-12 10:12 0 203 推薦指數:
問題的描述與方案的提出 在Spring從XML轉向注解時,為了自身的開發方便,對注解含義進行了擴充( 具體參考本號上一篇文章 )。 這個擴充直接導致了一個問題,就是需要從注解往元注解以及元元注解(即沿着 從下向上 的方向)里傳遞數據。 為了更好的描述 ...
歡迎來到《並發王者課》,本文是該系列文章中的第22篇,鉑金中的第9篇。 在前面的文章中,我們已經介紹了ReentrantLock,CountDownLatch,CyclicBarrier,Semaphore等同步工具。在本文中,將為你介紹最后一個同步工具,即Exchanger. ...
歡迎來到《並發王者課》,本文是該系列文章中的第20篇。 在上一篇文章中,我們介紹了Condition的用法。在本文中,將為你介紹CountDownLatch的用法。CountDownLatch是JUC中的一款常用工具類,當你在編寫多線程代碼時,如果你需要協調多個線程的開始和結束動作時,它可 ...
歡迎來到《並發王者課》,本文是該系列文章中的第17篇。 在並發編程中,信號量是線程同步的重要工具。在本文中,我將帶你認識信號量的概念、用法、種類以及Java中的信號量。 信號量(Semaphore) 是線程間的同步結構,主要用於多線程協作時的信號傳遞,以及對共享資源的保護、防止競態的發生 ...
歡迎來到《並發王者課》,本文是該系列文章中的第21篇,鉑金中的第8篇。 在上一篇文章中,我們介紹了CountDownLatch的用法。在協調多線程的開始和結束時,CountDownLatch是個非常不錯的選擇。而本文即將給你介紹的CyclicBarrier則更加有趣,它在能力 ...
歡迎來到《並發王者課》,本文是該系列文章中的第18篇。 在線程的同步中,阻塞隊列是一個繞不過去的話題,它是同步器底層的關鍵。所以,我們在本文中將為你介紹阻塞隊列的基本原理,以了解它的工作機制和它在Java中的實現。本文稍微有點長,建議先了解大綱再細看章節。 一、阻塞隊列介紹 在生活中,相信你 ...
歡迎來到《並發王者課》,本文是該系列文章中的第19篇。 在上一篇文章中,我們介紹了阻塞隊列。如果你閱讀過它的源碼,那么你一定會注意到源碼有兩個Condition類型的變量:notEmpty和notFull,在讀寫隊列時你也會注意到它們是如何被使用的。事實上,在使用JUC中的各種鎖時 ...
歡迎來到《並發王者課》,本文是該系列文章中的第14篇。 在黃金系列中,我們介紹了並發中一些問題,比如死鎖、活鎖、線程飢餓等問題。在並發編程中,這些問題無疑都是需要解決的。所以,在鉑金系列文章中,我們會從並發中的問題出發,探索Java所提供的鎖的能力以及它們是如何解決這些問題的。 作為鉑金系列 ...