ArrayBlockingQueue lưu trữ các phần tử theo thứ tự FIFO. Việc chèn phần tử luôn xảy ra ở phần cuối của hàng đợi và việc loại bỏ phần tử luôn xảy ra khỏi phần đầu của hàng đợi. Nó là luồng an toàn và Nó là hàng đợi mảng có giới hạn do đó khi được tạo, dung lượng sẽ không thể thay đổi được. Đây là việc triển khai hàng đợi Chặn.
Theo Java Docs -
Triển khai mảng có thể thay đổi kích thước của giao diện Deque. Array deques không có giới hạn về dung lượng; chúng phát triển khi cần thiết để hỗ trợ việc sử dụng. Chúng không an toàn theo luồng; trong trường hợp không có đồng bộ hóa bên ngoài, chúng không hỗ trợ truy cập đồng thời theo nhiều luồng. Các phần tử rỗng bị cấm. Lớp này có thể nhanh hơn Stack khi được sử dụng như một ngăn xếp và nhanh hơn LinkedList khi được sử dụng như một hàng đợi.
Sr. Không. | Phím | ArrayBlockingQueue | ArrayDeque |
---|---|---|---|
1 | Cơ bản | Nó triển khai giao diện BlockingQueue | Nó triển khai giao diện Deque |
2 | Bị giới hạn | Nó là hàng đợi mảng có giới hạn. Do đó Sau khi được tạo, dung lượng không thể thay đổi | Đó là triển khai mảng có thể thay đổi kích thước của Deque |
3 | An toàn Chủ đề | Nó là chủ đề an toàn | Nó không an toàn cho chuỗi |
4 | Chèn / Xóa | Việc chèn phần tử luôn xảy ra ở phần cuối của hàng đợi và việc loại bỏ phần tử luôn xảy ra khỏi phần đầu của hàng đợi | Nó hỗ trợ chèn và loại bỏ phần tử ở cả hai đầu |