原创 JVM系列之類加載器

前言 上節我們介紹了類加載的時機和過程,對類加載有了個初步的認識,上節我們有不斷提到一個東西:類加載器,那麼什麼是類加載器?又有哪些類加載器?類加載器之間的聯繫等等一些問題,今天我們將會圍繞這些點展開,那麼,開始我們今天的JVM之旅吧。

原创 併發編程系列之重入鎖VS讀寫鎖

前言 上節我們介紹了Java中的鎖基礎篇,也算是對鎖有了個基本的認識,對鎖底層的一些原理有所掌握,那麼今天我們就來看看2個最常見的鎖的實例應用,重入鎖和讀寫鎖,這是今天旅途最美的兩大景點,是不是有點迫不及待了,OK,那就讓我們一起開啓今天

原创 入門算法之最快最簡單的排序:桶排序

桶排序算法是最簡單最快速的排序算法,今天我們先從最簡單的開始接觸算法,首先我們先看下代碼實現,然後根據結果再來對該算法進行分析: public class BucketSort {        public static voi

原创 併發編程系列之原子操作實現原理

前言 上節我們講了併發編程中最基本的兩個元素的底層實現,同樣併發編程中還有一個很重要的元素,就是原子操作,原子本意是不可以再被分割的最小粒子,原子操作就是指不可中斷的一個或者一系列操作。那麼今天我們就來看看在多處理器環境下Java是如何保

原创 併發編程系列之Semaphore

前言 上節我們介紹了Java中的併發工具類CountDownLatch和Cyclicbarrier,今天我們再來說說另外兩個併發工具類:Semaphore(信號量)和Exchanger(交換者),首先我們先來說說信號量這個東西,結合我們今

原创 mysql更新一張表的字段來自另一張表的某個字段

UPDATE tba a LEFT JOIN tbb b on a.id=b.id set a.xxx = b.xxxx where a.id = b.id

原创 併發編程系列之併發容器:ConcurrentLinkedQueue

前言 上節我們介紹了線程安全的HashMap,今天我們再來介紹一個線程安全的併發容器:ConcurrentLinkedQueue,它是一個線程安全的隊列,在Java中如果要實現一個線程安全的隊列由2種方式:一個是使用阻塞算法的隊列,用一個

原创 併發編程系列之CountDownLatch對戰Cyclicbarrier

前言 前面我們介紹了併發容器和隊列,今天我們來介紹幾個非常有用的併發工具類,今天主要講CountDownLatch和Cyclicbarrier這兩個工具類,通過講解並對比兩個類的區別,OK,讓我們開始今天的併發之旅吧。   什麼是Coun

原创 併發編程JMM系列之重排序和順序一致性

前言 昨天我們接觸到了什麼是Java內存模型以及兩種Java併發模型,並對JMM有了一些初步的認識和了解,我們在上節有提到JMM的重排序規則,但是講的不詳細,今天我們再重點聊下重排序這個東西,以及順序一致性內存模型,OK,開始我們今天的併

原创 併發編程系列之Fork/Join

前言 上節我們講了阻塞隊列,Java中的併發容器就算有了個基本的認識,今天我們來介紹一種線程工作模式,叫Fork/Join,他是JDK7之後提供的一個並行執行框架,主要的思想我覺得是分而治之,將一個大的任務分成多個小的任務並行執行,然後等

原创 併發編程JMM系列之基礎

前言 Java程序員在進行多線程開發時,並不需要關心線程間是如何通信的,這些對程序員本來來說完全是透明的,但是內存可見性問題很容易讓我們困惑,今天開始我們就講講Java內存模型(JMM)相關知識點,首先我們先講講內存模型的一些基本概念,對

原创 併發編程系列之線程的啓動終止

前言 上節我們對線程有了個基本的概念和認識,從線程狀態轉變過程我們也已經知道了線程通過調用start方法進行啓動,直到run方法執行線程結束,今天我們就來詳細的說說啓動和終止線程的細節,OK,讓我們開始今天的併發之旅吧。   創建線程

原创 算法入門之最常用的排序:快速排序算法

回顧前面2篇文章我們提到了桶算法和冒泡算法,雖然冒泡算法解決了桶算法的空間問題,但是如果排序的基數比較大,你會發現冒泡算法的時間複雜度O(N²)也是驚人的,有沒有一種更好的算法既能解決空間問題又能解決時間複雜度的問題呢?答案就是我們今天要

原创 併發編程系列之線程池工廠類:Executors

前言 上節講了講自定義線程池,今天我們來聊聊線程池框架,在實際開發中我們還是基本使用線程框架Executor給我們提供的一些工具類,Java提供的Executor都在JUC(java.util.concurrent)包下面,主要包括:線程

原创 併發編程系列之阻塞隊列(BlockingQueue)

前言 上節我們介紹了非阻塞隊列ConcurrentLinkedQueue的相關內容,今天我們再來說說Java中的阻塞隊列BlockingQueue,主要介紹下阻塞隊列的概念,常見的阻塞隊列,以及阻塞隊列的底層實現。   什麼是阻塞隊列?