您好,登錄后才能下訂單哦!
1.ConcurrentModificationException
出現這種的原因是遍歷(iterator或增強循環)同步類容器時,同時對容器內的元素進行修改造成的,可以用普通for循環解決。因為普通for循環是一個線程操作。
2.普通容器想變成線程安全的容器,那么用Collections.synchronizedCollection方法就可以實現.
3.concurrentHashMap分為16個segment片,計算size用的volitile修飾,而取值 ,和賦值是,在每一個segment內加入鎖,在segment之間不加鎖。
4.copyonwrite,每次進行寫操作的時候,都要在原線程的數據中復制一次。操作完成之后,都會把新修改的數據再賦值回去,不適合做list元素比較多的場景。同時修改時,有鎖。
5.各種隊列,阻塞隊列,非阻塞隊列和×××隊列,有界隊列。×××隊列,add和offer是一樣的作用。阻塞隊列,add添加不進去報異常,offer添加不進去返回false,或者可以設定等待時間。put方法就阻塞再那里。poll方法從對手有值則返回,物質則返回失敗。take方法,無值時,阻塞再那里直到有值。drainTo,提升效率的一次性獲取多個元素。
6.concurrentLinkQueue基于無阻塞×××隊列 ,poll,取值移除,peek,取值不移除。
7.ArrayBlockingQueue基于阻塞有界隊列。
8.linkedblockingqueue阻塞×××隊列。
9.SynchronousQueue不能城防任何元素的阻塞隊列。
10.ProrityBlockingQueue,添加的時候有一個二分算法,取值的時候,有一個比較算法,取出優先級最高的。
11.DelayQueue有getDelay方法和compareTo方法,用于延遲時間的設定和元素之間的比較排序
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。