<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
public enum QueueTypeEnum { ARRAY_BLOCKING_QUEUE(1, "ArrayBlockingQueue"), LINKED_BLOCKING_QUEUE(2, "LinkedBlockingQueue"), DELAY_QUEUE(3, "DelayQueue"), PRIORITY_BLOCKING_QUEUE(4, "PriorityBlockingQueue"), SYNCHRONOUS_QUEUE(5, "SynchronousQueue"), LINKED_TRANSFER_QUEUE(6, "LinkedTransferQueue"), LINKED_BLOCKING_DEQUE(7, "LinkedBlockingDeque"), VARIABLE_LINKED_BLOCKING_QUEUE(8, "VariableLinkedBlockingQueue"), MEMORY_SAFE_LINKED_BLOCKING_QUEUE(9, "MemorySafeLinkedBlockingQueue"); }
一個支援優先順序排序的無界阻塞佇列;對元素沒有要求,可以實現Comparable介面也可以提供 Comparator來對佇列中的元素進行比較。通過建構函式傳入的物件來判斷,傳入的物件必須實現comparable介面,並重寫compareTo方法。可以按照自然排序或自定義排序的順序在佇列中對元素進行排序。
例如新建物件Person:
public class Person implements Comparable<Person>{ private int id; @Override public int compareTo(Person person) { return this.id > person.getId() ? 1 : ( this.id < person.getId() ? -1 :0); } }
每次新增一個元素,PriorityBlockingQueue中的person都會執行compareTo方法進行排序,但是隻是把第一個元素排在首位,其他元素按照佇列的一系列複雜演演算法排序。這就保障了每次獲取到的元素都是經過排序的第一個元素。
SynchronousQueue是一個不儲存元素的阻塞佇列,是BlockingQueue的一種,SynchronousQueue執行緒安全的。SynchronousQueue和其他的BlockingQueue不同的是SynchronousQueue的capacity是0。即SynchronousQueue不儲存任何元素。消費者執行緒呼叫 take() 方法的時候就會發生阻塞,直到有一個生產者執行緒生產了一個元素,消費者執行緒就可以拿到這個元素並返回;生產者執行緒呼叫 put() 方法的時候也會發生阻塞,直到有一個消費者執行緒消費了一個元素,生產者才會返回。
SynchronousQueue內部並沒有資料快取空間,你不能呼叫peek()方法來看佇列中是否有資料元素,因為資料元素只有當你試著取走的時候才可能存在,不取走而只想偷 窺一下是不行的,當然遍歷這個佇列的操作也是不允許的。
佇列頭元素是第一個排隊要插入資料的執行緒,而不是要交換的資料。資料是在配對的生產者和消費者執行緒之間直接傳遞的,並不會將資料緩衝到佇列中。可以這樣來理解:生產者和消費者互相等待對方,握手,然後一起離開。
SynchronousQueue的一個使用場景是線上程池裡。Executors.newCachedThreadPool()就使用了SynchronousQueue,這個執行緒池根據需要(新任務到來時)建立新的執行緒,如果有空閒執行緒則會重複使用,執行緒空閒了60秒後會被回收。
以上就是Java執行緒池佇列PriorityBlockingQueue和SynchronousQueue詳解的詳細內容,更多關於Java執行緒池佇列的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45