
這篇的主題本應(yīng)該放在最初的幾篇,討論的是并發(fā)編程最基礎(chǔ)的幾個(gè)核心概念,但是這幾個(gè)概念又牽扯到很多的實(shí)際技術(shù),比如Java內(nèi)存模型,各種鎖的實(shí)現(xiàn),...
這篇看一下時(shí)限隊(duì)列鎖的一種實(shí)現(xiàn)方式。 java并發(fā)包中的Lock定義包含了時(shí)限鎖的接口: tryLock就是實(shí)現(xiàn)鎖的接口,它支持限時(shí)操作,支持中...
在聊聊高并發(fā)(七)實(shí)現(xiàn)幾種自旋鎖(二) 這篇中介紹了兩種隊(duì)列鎖,一種是有界隊(duì)列鎖,一種是無界隊(duì)列鎖。其中無界隊(duì)列鎖CLHLock采用了鏈表的方式...
在聊聊高并發(fā)(六)實(shí)現(xiàn)幾種自旋鎖(一) 這篇中實(shí)現(xiàn)了兩種基本的自旋鎖:TASLock和TTASLock,它們的問題是會(huì)進(jìn)行頻繁的CAS操作,引發(fā)...
在聊聊高并發(fā)(五)理解緩存一致性協(xié)議以及對(duì)并發(fā)編程的影響 我們了解了處理器緩存一致性協(xié)議的原理,并且提到了它對(duì)并發(fā)編程的影響,“多個(gè)線程對(duì)同一個(gè)...
Java作為一個(gè)跨平臺(tái)的語言,它的實(shí)現(xiàn)要面對(duì)不同的底層硬件系統(tǒng),設(shè)計(jì)一個(gè)中間層模型來屏蔽底層的硬件差異,給上層的開發(fā)者一個(gè)一致的使用接口。Jav...
在繼續(xù)了解Java內(nèi)存模型之前,最好先理解Java對(duì)象的內(nèi)存表示。在網(wǎng)上搜了下Java對(duì)象內(nèi)存表示,說得都不夠系統(tǒng)和到位。之前看了《Hotspo...
理解并發(fā)編程的一些基本概念很重要,給我們思考問題指明一個(gè)基本的方向。這篇說一說鎖的一些基本概念。 在通常情況下我們說的鎖都指的是“互斥”鎖,因?yàn)?..
高并發(fā)問題拋去架構(gòu)層面的問題,落實(shí)到代碼層面就是多線程的問題。多線程的問題主要是線程安全的問題(其他還有活躍性問題,性能問題等)。 那什么是線程...