L'unico che riesco a trovare è il BoundedFIFOBuffer, che è deprecato. Chiunque altro?Esiste una raccolta limitata non bloccante in Java?
risposta
BoundedFIFOBuffer
in Apache Commons Collections (che presumo sia quello a cui ti riferisci) non è deprecato, ha appena spostato i pacchetti. L'originale in org.apache.commons.collections
è deprecato, ed è stato invece spostato a org.apache.commons.collections.buffer
Ci sono alcune collezioni limitate in Apache commons-collections, tra cui un BoundedFifoBuffer.
nella stessa libreria, è anche BoundedBuffer e CircularFifoBuffer
Perché non basta usare un LinkedBlockingQueue
e utilizzare i metodi non-blocking offer
(o add
) e poll
per accedervi? Puoi crearlo con una capacità fissa (ad esempio per renderlo limitato).
Un'altra buona opzione. Grazie. – Justin
Probabilmente non ne vale la pena, ma LinkedBlockingQueue continuerà a bloccare. Le future versioni di hotspot possono probabilmente ottimizzarle. Ma qualcosa di cui essere a conoscenza quando si profilano in seguito. –
Ho utilizzato Google Collections di recente. Penso che potresti avere una soluzione Java Generics abbastanza facilmente con esso. C'è una classe chiamata ForwardingList che penso tu possa implementare questa idea abbastanza facilmente. Ovviamente non è così facile come usare BoundedFifoBuffer (non generico) o ArrayBlockingQueue.
final ArrayList<MyObject> realList = Lists.newArrayList();
final List<MyObject> list = new ForwardingList<MyObject>() {
protected List<MyObject> delegate() {
return realList;
}
public boolean add(MyObject obj) {
if(delegate().size() > 100) return false;
return delegate().add(obj);
}
};
- 1. Raccolta simultanea non bloccante?
- 2. Presa Java non bloccante
- 3. Risoluzione DNS non bloccante (asincrona) in Java
- 4. Registrazione remota non bloccante asincrona in Java?
- 5. Allocazione memoria Java non bloccante
- 6. Connessione non bloccante
- 7. Codice di stato HTTP per raccolta limitata?
- 8. java: restituire una raccolta
- 9. Bounded, auto-rigetto, non bloccante, la raccolta simultanea
- 10. Esiste una raccolta java ordinata che gestisce i duplicati?
- 11. Java serializzabile, ObjectInputstream, I/O non bloccante
- 12. Perché FileChannel in Java non è non bloccante?
- 13. Come creare una raccolta parallela Scala da una raccolta Java
- 14. Meteor: impossibile sostituire il documento nella raccolta limitata
- 15. Conversione di una raccolta Java di una classe in una raccolta di stringhe
- 16. Confronto veloce di una stringa con una raccolta in Java
- 17. sincronizzazione delle letture in una raccolta java
- 18. Che cos'è una raccolta java?
- 19. perché concurrent_queue non è bloccante?
- 20. Kombu in modalità non bloccante
- 21. Accesso in esecuzione non bloccante?
- 22. Scrapy: pausa non bloccante
- 23. Sottoprocesso non bloccante
- 24. non bloccante getch()
- 25. Annulla convertToCapped a una raccolta
- 26. Esiste un modo per convertire una raccolta osservabile in una raccolta regolare?
- 27. PHP Inotify Modo non bloccante
- 28. getch non bloccante(), ncurses
- 29. Esistono classi di raccolta non ordinate e ripetibili in Java?
- 30. controllo MongoDB 3 Java se la raccolta esiste
Grazie, in qualche modo sono atterrato sulla pagina deprecata. – Justin