Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa ArrayBlockingQueue và LinkedBlockingQueue

Giao diện hàng đợi chặn là một phần của gói Java.util.concurrent. Hàng đợi chặn được thiết kế đặc biệt cho hàng đợi của người tiêu dùng của nhà sản xuất và cũng hỗ trợ thu thập. Giao diện này được chia thành bốn phần của các phương thức để hỗ trợ tất cả các loại hoạt động có thể được thực hiện qua hàng đợi. Nó không chấp nhận các phím null. ArrayBlockingQueue và LinkedBlockingQueue đều triển khai giao diện hàng đợi Chặn

ArrayBlockingQueue và LinkedBlockingQueue đều lưu trữ các phần tử theo thứ tự FIFO. Trong cả hai hàng đợi Chèn phần tử luôn xảy ra ở cuối hàng đợi và việc loại bỏ phần tử luôn xảy ra khỏi đầu hàng đợi.

Sr. Không. Phím ArrayBlockingQueue LinkedBlockingQueue
1
Cơ bản
Nó được hỗ trợ bởi Array
Nó được hỗ trợ bởi danh sách được Liên kết
2
Bị giới hạn
Nó là hàng đợi mảng có giới hạn. Do đó Sau khi được tạo, không thể thay đổi dung lượng
Đây là hàng đợi không giới hạn
3
Thông lượng
Nó có thông lượng thấp hơn so với hàng đợi Liên kết hàng đợi
Hàng đợi được liên kết có thông lượng cao hơn hàng đợi dựa trên mảng
4.
Khóa
Nó sử dụng thuật toán điều kiện kép một khóa
Nó có putLock để chèn phần tử vào hàng đợi và takeLock để xóa phần tử khỏi hàng đợi