อินเตอร์เฟสคิวการบล็อกเป็นส่วนหนึ่งของแพ็คเกจ Java.util.concurrent คิวการบล็อกได้รับการออกแบบมาเป็นพิเศษสำหรับคิวผู้บริโภคของผู้ผลิตและยังสนับสนุนการรวบรวม อินเทอร์เฟซนี้แบ่งออกเป็นสี่ส่วนของเมธอดเพื่อรองรับการทำงานทุกประเภทที่สามารถทำได้ผ่านคิว ไม่ยอมรับคีย์ null ArrayBlockingQueue และ LinkedBlockingQueue ใช้อินเทอร์เฟซคิวการบล็อก
ArrayBlockingQueue และ LinkedBlockingQueue จัดเก็บองค์ประกอบตามลำดับ FIFO ในทั้งสองคิว การแทรกองค์ประกอบจะเกิดขึ้นที่ส่วนท้ายของคิวเสมอ และการนำองค์ประกอบออกจากส่วนหัวของคิวเสมอ
ซีเนียร์ เลขที่ | คีย์ | ArrayBlockingQueue | LinkedBlockingQueue |
---|---|---|---|
1 | พื้นฐาน | สนับสนุนโดย Array | สนับสนุนโดย Linked list |
2 | ถูกผูกไว้ | เป็นคิวอาร์เรย์ที่มีขอบเขต ดังนั้น เมื่อสร้างแล้วจะไม่สามารถเปลี่ยนความจุได้ | ไม่จำกัดคิว |
3 | ปริมาณงาน | มีปริมาณงานต่ำกว่าคิวที่เชื่อมโยง | คิวที่เชื่อมโยงมีปริมาณงานสูงกว่าคิวแบบอาร์เรย์ |
4. | ล็อค | มันใช้อัลกอริธึมเงื่อนไขคู่แบบล็อกเดี่ยว | มี putLock สำหรับแทรกองค์ประกอบในคิวและ takeLock สำหรับลบองค์ประกอบออกจากคิว |