Dari JavaDocs:
- Sebuah ConcurrentLinkedQueue adalah pilihan yang tepat ketika banyak benang akan berbagi akses ke koleksi umum. Antrian ini tidak mengizinkan elemen nol.
- ArrayBlockingQueue adalah "buffer terbatas" klasik, di mana array berukuran tetap menampung elemen yang dimasukkan oleh produsen dan diekstraksi oleh konsumen. Kelas ini mendukung kebijakan kewajaran opsional untuk memesan utas produsen dan konsumen yang menunggu
- LinkedBlockingQueue biasanya memiliki throughput yang lebih tinggi daripada antrian berbasis array tetapi kinerja yang kurang dapat diprediksi di sebagian besar aplikasi bersamaan.
Saya punya 2 skenario, satu membutuhkan antrian untuk mendukung banyak produsen (utas menggunakannya) dengan satu konsumen dan yang lainnya adalah sebaliknya.
Saya tidak mengerti implementasi mana yang digunakan. Adakah yang bisa menjelaskan perbedaannya?
Juga, apa 'kebijakan keadilan opsional' di ArrayBlockingQueue
?