概述 Java8的兩個(gè)重大改變,一個(gè)是Lambdab表達(dá)式,另外一個(gè)就是Stream API表達(dá)式。Stream是Java8中處理集合的關(guān)鍵抽象...
概述 ArrayList使我們從學(xué)習(xí)Java開(kāi)始經(jīng)常使用到的一種集合類,也是我們?cè)诿嬖囍薪?jīng)常被面試官提起的一個(gè)知識(shí)點(diǎn),仔細(xì)閱讀ArrayList...
概述 對(duì)于Java來(lái)說(shuō)萬(wàn)物皆對(duì)象,所有的Java對(duì)象的最終父類都是Object,所以它們都擁有一組監(jiān)視器方法,主要包括:wait(),wait(...
概述 在并發(fā)編程中,為了解決線程安全問(wèn)題,我們會(huì)高頻率的使用獨(dú)占式鎖,一般我們使用java提供的Synchronized關(guān)鍵字或java.uti...
概述 重入鎖ReentrantLock,顧名思義,就是支持重進(jìn)入的鎖,它表示能夠支持一個(gè)線程對(duì)資源的重復(fù)加鎖。除此之外,該鎖還支持獲取鎖時(shí)的公平...
概述 在前面我們初步認(rèn)識(shí)了一下lock與AQS的基礎(chǔ)內(nèi)容,在同步組件的實(shí)現(xiàn)中,AQS是核心部分,我們通過(guò)AQS提供的模板方法來(lái)實(shí)現(xiàn)自定義同步組件...
概述 并發(fā)編程的目的是為了讓程序運(yùn)行的更快,但并不是啟動(dòng)更多的線程就能讓程序最大限度地并發(fā)執(zhí)行。如果想通過(guò)多線程使程序運(yùn)行更快,那么將會(huì)面臨很多...
概述 在學(xué)習(xí)java并發(fā)編程的過(guò)程中,java.util.concurrent包是我們需要學(xué)習(xí)和理解的關(guān)鍵之一,concurrent包的作者Do...
線程安全的兩大核心 我們知道,出現(xiàn)線程安全的問(wèn)題一般是因?yàn)橹鲀?nèi)存和線程工作內(nèi)存數(shù)據(jù)不一致和重排序?qū)е碌?,而解決線程安全問(wèn)題,最重要的就是理解這兩...