我正在實施生產者/消費者模式並使用LinkedTransferQueue集合。如何限制LinkedTransferQueue的大小?
我不希望我的製作者超出某些內存限制。
目前我正在使用此檢查,但從documentation開始,大小操作需要O(N)遍歷。對於我目前的實現中,它是好的,
但沒有任何比一個更好的辦法,我目前使用 ?
LinkedTransferQueue<String> producerStringLinkedTransferQueue = new LinkedTransferQueue<String>();
if (producerStringLinkedTransferQueue.size() <= 5000) {
producerStringLinkedTransferQueue.add(<some data>);
}
這當然不是這樣做的。 [「確定當前元素數量...如果在遍歷過程中修改了此集合,則可能會報告不準確的結果。」](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ LinkedTransferQueue.html) – Michael
同意:),因爲我不必對尺寸驗證非常嚴格,我使用這種方法,但不應該使用它,如果尺寸驗證非常嚴格 –