本文轉載自於曉飛93,原文鏈接 DualPivotQuickSort 雙軸快速排序 源碼 筆記 DualPivotQuicksort是Arrays類中提供的給基本類型的數據排序的算法。它針對每種基本數據類型都有對應的實現,實現方式有細微差異,但思路都是相同的,所以這里只挑選int ...
如無特殊說明,文中的代碼均是JDK . 版本。 在JDK集合框架中描述過,JDK存儲一組Object的集合框架是Collection。而針對Collection框架的一組操作集合體是Collections,里面包含了多種針對Collection的操作,例如:排序 查找 交換 反轉 復制等。 這一節講述Collections的排序操作。 Collections.sort方法調用的是List.sort ...
2018-07-20 16:37 2 3985 推薦指數:
本文轉載自於曉飛93,原文鏈接 DualPivotQuickSort 雙軸快速排序 源碼 筆記 DualPivotQuicksort是Arrays類中提供的給基本類型的數據排序的算法。它針對每種基本數據類型都有對應的實現,實現方式有細微差異,但思路都是相同的,所以這里只挑選int ...
一、前言 分析完了CyclicBarrier后,下面分析CountDownLatch,CountDownLatch用於同步一個或多個任務,強制他們等待由其他任務執行的一組操作完成。CountDownLatch典型的用法是將一個程序分為n個互相獨立的可解決任務,並創建值為n ...
一、前言 分析了CountDownLatch源碼后,下面接着分析Semaphore的源碼。Semaphore稱為計數信號量,它允許n個任務同時訪問某個資源,可以將信號量看做是在向外分發使用資源的許可證,只有成功獲取許可證,才能使用資源。下面開始分析Semaphore的源碼 ...
一、前言 在分析了AbstractQueuedSynchronier源碼后,接着分析ReentrantLock源碼,其實在AbstractQueuedSynchronizer的分析中,已經提到過ReentrantLock,ReentrantLock表示下面具體分析ReentrantLock ...
一、前言 在鎖框架中,AbstractQueuedSynchronizer抽象類可以毫不誇張的說,占據着核心地位,它提供了一個基於FIFO隊列,可以用於構建鎖或者其他相關同步裝置的基礎框架。所以很有必要好好分析。 二、AbstractQueuedSynchronizer數據結構 分析 ...
一、前言 接着前面的分析,接下來分析ConcurrentLinkedQueue,ConcurerntLinkedQueue一個基於鏈接節點的無界線程安全隊列。此隊列按照 FIFO(先進先出)原則對元素進行排序。隊列的頭部是隊列中時間最長的元素。隊列的尾部 是隊列中時間最短的元素。新的元素插入 ...
一、前言 本篇是在分析Executors源碼時,發現JUC集合框架中的一個重要類沒有分析,SynchronousQueue,該類在線程池中的作用是非常明顯的,所以很有必要單獨拿出來分析一番,這對於之后理解線程池有很有好處,SynchronousQueue是一種阻塞隊列,其中每個插入操作 ...
一、前言 最近在做項目的同時也在修復之前項目的一些Bug,所以忙得沒有時間看源代碼,今天都完成得差不多了,所以又開始源碼分析之路,也着筆記錄下ConcurrentSkipListMap的源碼的分析過程。 二、ConcurrentSkipListMap數據結構 抓住了數據結構,對於理解 ...