沒有人知道一個有界的循環隊列(開放源代碼)的實現,還是一個內置於android/java的可用API類?android/java - 尋找一個高效的併發循環隊列
我爲這個集合所需的併發(不同步或基於鎖的)操作至少是入隊和出隊,但入隊也是足夠的。
對於那些誰不知道收集我所需要的,這裏有更多的一些信息:
- 界 - 有項目,可以在它的最大數量。
- 併發 - 允許多個線程高效地運行操作,無需任何形式的鎖定。這與同步解決方案相反,它只允許單個線程運行操作。
- 循環 - 如果我們將項目放入已填充的集合中,則新項目將替換最早的項目。
請幫助
聽起來你應該只是複製'ArrayBlockingQueue.java'(它在框架源代碼中可用),並改變'#offer(T)'和'#put(T)'方法使最後一項出隊 - 並且presto - 即時有界隊列,驅逐最後一個項目。 – Jens
@Jens - ArrayBlockingQueue不允許多個線程同時訪問,由源判斷。 – mcfinnigan
正確。不僅如此,它也不是循環的:如果您嘗試將物品放入已填充的隊列中,它將一直等到物品未填滿爲止,而相反 - 如果您嘗試從物品中取出物品一個空的隊列,它會一直等到它不是空的。 –