前言:上一節(jié)講述了鎖的原理,這節(jié)先講解鎖的應(yīng)用,再通過(guò)上節(jié)的原理來(lái)實(shí)現(xiàn)一個(gè)自定義的鎖。 1 從鎖開(kāi)始講起 1.1 lock 在java.util...
投稿
前言:上一節(jié)講述了鎖的原理,這節(jié)先講解鎖的應(yīng)用,再通過(guò)上節(jié)的原理來(lái)實(shí)現(xiàn)一個(gè)自定義的鎖。 1 從鎖開(kāi)始講起 1.1 lock 在java.util...
前言:上一節(jié)學(xué)習(xí)了JMM、Happen Before、可見(jiàn)性等等這種概念,基本都是來(lái)源于JDK的官方網(wǎng)站中,上面有所說(shuō)明了,能夠追根溯源才能夠跟...
前言:JVM內(nèi)存模型、Java內(nèi)存區(qū)域、GC分代回收容易搞混。前面講解了JVM內(nèi)存區(qū)域,它是Java代碼編譯成.class字節(jié)碼之后JVM運(yùn)行時(shí)...
概念:線(xiàn)程池顧名思義是存放線(xiàn)程的池子,意思是當(dāng)程序需要用到線(xiàn)程的時(shí)候,就從線(xiàn)程池中取出線(xiàn)程,用完之后就可以將線(xiàn)程放回線(xiàn)程池中去。 7.1線(xiàn)程池相...
概念:多線(xiàn)程中訪(fǎng)問(wèn)共享數(shù)據(jù)的時(shí)候會(huì)有線(xiàn)程間數(shù)據(jù)同步的問(wèn)題,并不是所有時(shí)候都會(huì)用到共享數(shù)據(jù),有些數(shù)據(jù)只需要在其線(xiàn)程內(nèi)使用,數(shù)據(jù)就被封閉在各自的線(xiàn)程...
5.1 線(xiàn)程的通信方式 有時(shí)候我們需要進(jìn)行線(xiàn)程間通信,如簡(jiǎn)單的生產(chǎn)者消費(fèi)者模式中,生產(chǎn)者生產(chǎn)完產(chǎn)品,需要通知消費(fèi)者去消費(fèi)產(chǎn)品,這就是一個(gè)最簡(jiǎn)單的...
4.1 CPU緩存 為了提高程序運(yùn)行的性能,現(xiàn)代CPU在很多方面對(duì)程序進(jìn)行了優(yōu)化。使用CPU高速緩存就是其中一種途徑。目的就是為了盡可能地避免處...
3.1 線(xiàn)程終止簡(jiǎn)介 線(xiàn)程終止顧明思議,我們?cè)诰€(xiàn)程運(yùn)行期間,有時(shí)候需要在某些條件下,讓線(xiàn)程停止運(yùn)行,并且目標(biāo)線(xiàn)程只有在被阻塞(此處的阻塞不是指線(xiàn)...
2.1 線(xiàn)程狀態(tài)簡(jiǎn)介 在java.lang.Thread.State中能清楚的看到Java中定義了6種狀態(tài): New:尚未啟動(dòng)的線(xiàn)程的線(xiàn)程狀態(tài) ...
前言:了解Java運(yùn)行原理更有利于理解后期的線(xiàn)程原理知識(shí) 1.1 Class文件結(jié)構(gòu) 學(xué)過(guò)Java的都知道,Java文件先經(jīng)過(guò)編譯器編譯成.cl...