原创 Java併發容器,底層原理深入分析

ConcurrentHashMapConcurrentHashMap底層具體實現JDK 1.7底層實現將數據分爲一段一段的存儲,然後給每一段數據配一把鎖, 當一個線程佔用鎖訪問其中一個段數據時,其他段的數據也能被其他線程訪問。Concurr

原创 Java併發編程,互斥同步和線程之間的協作

互斥同步和線程之間的協作互斥同步Java 提供了兩種鎖機制來控制多個線程對共享資源的互斥訪問,第一個是 JVM 實現的 synchronized,而另一個是 JDK 實現的 ReentrantLock。synchronized1. 同步一個

原创 Java併發編程,Condition的await和signal等待通知機制

Condition簡介Object類是Java中所有類的父類, 在線程間實現通信的往往會應用到Object的幾個方法: wait(),wait(long timeout),wait(long timeout, int nanos)與noti

原创 Java併發編程,深入理解ReentrantLock

ReentrantLock簡介ReentrantLock重入鎖,是實現Lock接口的一個類,也是在實際編程中使用頻率很高的一個鎖, 支持重入性,表示能夠對共享資源能夠重複加鎖,即當前線程獲取該鎖再次獲取不會被阻塞。 ReentrantLoc

原创 Java併發編程,3分分鐘深入分析volatile的實現原理

volatile原理volatile簡介Java內存模型告訴我們,各個線程會將共享變量從主內存中拷貝到工作內存,然後執行引擎會基於工作內存中的數據進行操作處理。 線程在工作內存進行操作後何時會寫到主內存中? 這個時機對普通變量是沒有規定的,

原创 一篇文章帶你解析,樂觀鎖與悲觀鎖的優缺點

樂觀鎖與悲觀鎖概述樂觀鎖總是假設最好的情況,每次去讀數據的時候都認爲別人不會修改,所以不會上鎖, 但是在更新的時候會判斷一下在此期間有沒有其他線程更新該數據, 可以使用版本號機制和CAS算法實現。 樂觀鎖適用於多讀的應用類型,這樣可以提高吞

原创 Java高併發實戰,鎖的優化

鎖優化這裏的鎖優化主要是指 JVM 對 synchronized 的優化。自旋鎖互斥同步進入阻塞狀態的開銷都很大,應該儘量避免。在許多應用中,共享數據的鎖定狀態只會持續很短的一段時間。自旋鎖的思想是讓一個線程在請求一個共享數據的鎖時執行忙循

原创 Java併發編程的藝術,解讀併發編程的優缺點

併發編程的優缺點使用併發的原因多核的CPU的背景下,催生了併發編程的趨勢,通過併發編程的形式可以將多核CPU的計算能力發揮到極致,性能得到提升。在特殊的業務場景下先天的就適合於併發編程。 比如在圖像處理領域,一張1024X768像素的圖片,

原创 Java虛擬機,類文件結構深度解析

Java類文件結構Java虛擬機不和包括Java在內的任何語言綁定,只與 "Class文件" 這種特定的二進制文件所關聯, Class文件中包含了Java虛擬機指令集合符號表以及若干其它輔助信息。 Java虛擬機作爲一個通用的、機器無關的執

原创 Java虛擬機內存分配與回收策略

內存分配與回收策略Minor GC 和 Full GCMinor GC:發生在新生代上,因爲新生代對象存活時間很短,因此 Minor GC 會頻繁執行, 執行的速度一般也會比較快。Full GC:又稱Major GC,發生在老年代上,老年代

原创 老生常談Java虛擬機垃圾回收機制(必看篇)

二、垃圾收集垃圾收集主要是針對堆和方法區進行。程序計數器、虛擬機棧和本地方法棧這三個區域屬於線程私有的,只存在於線程的生命週期內,線程結束之後也會消失,因此不需要對這三個區域進行垃圾回收。 判斷一個對象是否可被回收1. 引用計數算法給對象添

原创 Java開發中存在這樣的代碼,反而影響整體整潔和可讀性

不完美的庫類不完美的庫類(Incomplete Library Class)當一個類庫已經不能滿足實際需要時,你就不得不改變這個庫(如果這個庫是隻讀的,那就沒轍了)。問題原因許多編程技術都建立在庫類的基礎上。庫類的作者沒用未卜先知的能力,不

原创 JVM運行時數據區域

一、運行時數據區域 相應腦圖程序計數器記錄正在執行的虛擬機字節碼指令的地址(如果正在執行的是本地方法則爲空)。Java 虛擬機棧每個 Java 方法在執行的同時會創建一個棧幀用於存儲局部變量表、操作數棧、常量池引用等信息。 從方法調用直至執

原创 JVM運行時數據區域

一、運行時數據區域 相應腦圖程序計數器記錄正在執行的虛擬機字節碼指令的地址(如果正在執行的是本地方法則爲空)。Java 虛擬機棧每個 Java 方法在執行的同時會創建一個棧幀用於存儲局部變量表、操作數棧、常量池引用等信息。 從方法調用直至執