JavaDocs'tan:
- Bir ConcurrentLinkedQueue birçok konu ortak bir koleksiyona erişim paylaşacak uygun bir seçimdir. Bu kuyruk boş öğelere izin vermiyor.
- ArrayBlockingQueue , sabit boyutlu bir dizinin üreticiler tarafından eklenen ve tüketiciler tarafından çıkarılan öğeleri tuttuğu klasik bir "sınırlı arabellek" dir. Bu sınıf, bekleyen üretici ve tüketici konuları sipariş etmek için isteğe bağlı bir adalet politikasını destekler
- LinkedBlockingQueue tipik olarak dizi tabanlı kuyruklardan daha yüksek iş hacmine sahiptir, ancak çoğu eşzamanlı uygulamada daha az tahmin edilebilir performansa sahiptir.
2 senaryom var, biri birçok üreticiyi (onu kullanan iş parçacıkları) bir tüketiciyle desteklemek için kuyruğa ihtiyaç duyuyor, diğeri ise diğer yoldur.
Hangi uygulamayı kullanacağımı anlamıyorum. Biri farklılıkların ne olduğunu açıklayabilir mi?
Ayrıca, içindeki 'isteğe bağlı adalet politikası' ArrayBlockingQueue
nedir?