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