Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Khác biệt giữa ArrayBlockingQueue và ArrayDeque

ArrayBlockingQueue lưu trữ phần tử theo thứ tự FIFO. Chèn phần tử luôn ở đuôi queue, xóa phần tử luôn ở đầu queue. Nó thread-safe và là bounded array queue nên một lần tạo, dung lượng không thể thay đổi. Là triển khai của Blocking queue.

Theo Java Docs:

ArrayDeque là triển khai mảng có thể thay đổi kích thước (resizable-array) của interface Deque. Array deques không giới hạn dung lượng; tự động mở rộng khi cần. Chúng không thread-safe; nếu không có đồng bộ bên ngoài, không hỗ trợ truy cập đồng thời bởi nhiều luồng. Phần tử null bị cấm. Lớp này có thể nhanh hơn Stack khi dùng như stack, và nhanh hơn LinkedList khi dùng như queue.

STT Tiêu chí ArrayBlockingQueue ArrayDeque
1 Interface cơ bản Triển khai BlockingQueue interface Triển khai Deque interface
2 Giới hạn dung lượng Bounded array queue. Một lần tạo, dung lượng không đổi Resizable-array implementation của Deque
3 Thread Safety Thread safe Không thread safe
4 Chèn/Xóa Chèn ở đuôi, xóa ở đầu (FIFO) Hỗ trợ chèn/xóa ở cả hai đầu