概述 在前面我們初步認(rèn)識(shí)了一下lock與AQS的基礎(chǔ)內(nèi)容,在同步組件的實(shí)現(xiàn)中,AQS是核心部分,我們通過AQS提供的模板方法來實(shí)現(xiàn)自定義同步組件,而底層的同步狀態(tài)修改、阻塞線...
概述 在前面我們初步認(rèn)識(shí)了一下lock與AQS的基礎(chǔ)內(nèi)容,在同步組件的實(shí)現(xiàn)中,AQS是核心部分,我們通過AQS提供的模板方法來實(shí)現(xiàn)自定義同步組件,而底層的同步狀態(tài)修改、阻塞線...
概述 在學(xué)習(xí)java并發(fā)編程的過程中,java.util.concurrent包是我們需要學(xué)習(xí)和理解的關(guān)鍵之一,concurrent包的作者Doug Lea在其中為我們提供了...
注:該文章源碼基于JDK1.8 概述 HashMap實(shí)現(xiàn)了Serializable和cloneable接口,繼承了AbstractMap類。我們先來看下HashMap的圖解:...
本文源碼都基于JDK1.8 概述 Java是一門面向?qū)ο蟮木幊陶Z(yǔ)言,在Java的世界里,萬(wàn)物皆對(duì)象。而Object是一切對(duì)象的祖先。所以理解Object的常用方法就非常必要了...
本文源碼基于JDK1.8 概述 String并不屬于Java八大基礎(chǔ)類型中的一種,但是其使用頻率卻不比任何一種基礎(chǔ)類型低,所以了解String的常用方法和一些相關(guān)類就顯得尤為...
概述 上一篇文章Java鎖分類中,有提到一種分類的思想:樂觀鎖和悲觀鎖。悲觀鎖,總認(rèn)為每次訪問共享資源的時(shí)候,都有可能發(fā)生資源競(jìng)爭(zhēng),所以在線程獲取到共享資源后,需要加鎖,其余...
概述 先了解一下基本概念。線程是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。它被包含在進(jìn)程中,是進(jìn)程中的實(shí)際運(yùn)作單位。一條線程指的是進(jìn)程中一個(gè)單一順序的控制流,一個(gè)進(jìn)程中可以并發(fā)多個(gè)...
線程安全的兩大核心 我們知道,出現(xiàn)線程安全的問題一般是因?yàn)橹鲀?nèi)存和線程工作內(nèi)存數(shù)據(jù)不一致和重排序?qū)е碌?,而解決線程安全問題,最重要的就是理解這兩種問題是怎么來的,而理解他們的...
注:本文所有源碼基于JDK1.8 概述 前面我們已經(jīng)分析了HashMap,TreeMap這兩種常用的Map類型,但是這兩種類型都是線程不安全的。下面我們來看一下Map中最老牌...