溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

兩句話筆記--架構(gòu)學(xué)習(xí)之一:并發(fā)基礎(chǔ)課程(1)

發(fā)布時(shí)間:2020-08-02 04:27:02 來(lái)源:網(wǎng)絡(luò) 閱讀:455 作者:齊曼語(yǔ) 欄目:軟件技術(shù)

1.ConcurrentModificationException
出現(xiàn)這種的原因是遍歷(iterator或增強(qiáng)循環(huán))同步類(lèi)容器時(shí),同時(shí)對(duì)容器內(nèi)的元素進(jìn)行修改造成的,可以用普通for循環(huán)解決。因?yàn)槠胀╢or循環(huán)是一個(gè)線程操作。
2.普通容器想變成線程安全的容器,那么用Collections.synchronizedCollection方法就可以實(shí)現(xiàn).
3.concurrentHashMap分為16個(gè)segment片,計(jì)算size用的volitile修飾,而取值 ,和賦值是,在每一個(gè)segment內(nèi)加入鎖,在segment之間不加鎖。
4.copyonwrite,每次進(jìn)行寫(xiě)操作的時(shí)候,都要在原線程的數(shù)據(jù)中復(fù)制一次。操作完成之后,都會(huì)把新修改的數(shù)據(jù)再賦值回去,不適合做list元素比較多的場(chǎng)景。同時(shí)修改時(shí),有鎖。
5.各種隊(duì)列,阻塞隊(duì)列,非阻塞隊(duì)列和×××隊(duì)列,有界隊(duì)列?!痢痢陵?duì)列,add和offer是一樣的作用。阻塞隊(duì)列,add添加不進(jìn)去報(bào)異常,offer添加不進(jìn)去返回false,或者可以設(shè)定等待時(shí)間。put方法就阻塞再那里。poll方法從對(duì)手有值則返回,物質(zhì)則返回失敗。take方法,無(wú)值時(shí),阻塞再那里直到有值。drainTo,提升效率的一次性獲取多個(gè)元素。
6.concurrentLinkQueue基于無(wú)阻塞×××隊(duì)列 ,poll,取值移除,peek,取值不移除。
7.ArrayBlockingQueue基于阻塞有界隊(duì)列。
8.linkedblockingqueue阻塞×××隊(duì)列。
9.SynchronousQueue不能城防任何元素的阻塞隊(duì)列。
10.ProrityBlockingQueue,添加的時(shí)候有一個(gè)二分算法,取值的時(shí)候,有一個(gè)比較算法,取出優(yōu)先級(jí)最高的。
11.DelayQueue有g(shù)etDelay方法和compareTo方法,用于延遲時(shí)間的設(shè)定和元素之間的比較排序

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI