原创 Java中的HashCode
什麼是hashcode hashcode即哈希碼,是方便用於查找而使用的一種方法 1.假如內存中有這樣的位置0 1 2 3 4 5 6 7 ,當我要存儲一個對象時,我就要把這個對象放在8個位置之一,如果不用hashcode而任
原创 實戰java高併發程序之並行程序調試
準備試驗樣本 實現樣本 /** * 兩個線程都過了數組大小檢查,先後插入數據時 引起 out of bound * @author Geym * */ public class UnsafeArrayList { stati
原创 jdk8中的lambda表達式
lambda表達式 lambda的優化 JDK8中可以使用以下簡略寫法 new Thread(() -> System.out.println("多線程任務執行!")).start(); // 啓動線程 Arrays.sort(array,
原创 實戰java高併發程序設計-jdk8,9,10與併發
java8函數式編程簡介 函數作爲一等公民 一個函數可以作爲另一個函數的返回值. //js中 function f1(){ var n=1; function f2(){ alert(n); }
原创 實戰java高併發程序設計第五章--並行模式與算法
單例模式 1 1 2 列表3 定義:一個類在系統中只產生一個實例 優點:對於頻繁使用的對象,可以省略new的時間,對於重量級對象來說是一比客觀的系統性能提升 內存使用頻率低,減少GC次數,縮短GC停頓時間 //餓漢式
原创 實戰java高併發程序設計第四章-鎖優化
鎖的使用建議 減少鎖持有時間 減少鎖粒度 讀寫鎖替代獨佔鎖 鎖分離 鎖粗化 減少鎖的持有時間 減少鎖的持有時間有助於降低衝突的可能性,進而提升併發能力 減少鎖粒度 例如ConcurrentHashMap,內部分爲16個segmen
原创 實戰java高併發程序設計第三章(二)
3. JDK的併發容器 併發集合 ConcurrentHashMap:這是一個高效的併發HashMap.你可以把它理解爲一個線程安全的HashMap。 CopyOnWriteArrayList:這是一個List,從名字看就知道它和
原创 實戰java高併發程序設計第三章
1. 同步控制 synchronized的擴展:重入鎖 重入鎖的搭檔Condition 多線程同時訪問:信號量(semaphore) 讀寫鎖ReadWriteLock 倒計數器CountDownLatch 循環柵欄CyclicBarrie
原创 實戰java高併發程序設計第二章
1.線程的基本狀態 2.線程的基本操作 3. volatile與java內存模型 4.線程組 5.守護線程(Daemon) 6.線程優先級 7.線程安全與synchronized 8.隱蔽錯誤 1.線程的基
原创 實戰java高併發程序設計第一章
1. 基本概念 同步(Synchronous)和異步(Asynchronous) 併發(Conncurrency)和並行(Parallelism) 臨界區 阻塞(Blocking)與非阻塞(Non-Blocking) 死鎖(Deadloc