Jedyne, co mogę znaleźć, to BoundedFIFOBuffer, który jest przestarzały. Ktoś jeszcze?Czy istnieje zbiór nieblokujących kolekcji Java?
Odpowiedz
BoundedFIFOBuffer
w zbiorach Apache Commons (które, jak zakładam, jest to, do czego się odwołujesz) nie jest przestarzałe, właśnie przeniósł pakiety. Oryginalnym w org.apache.commons.collections
jest przestarzała, a zamiast tego została przeniesiona do org.apache.commons.collections.buffer
Istnieją pewne Ograniczone zbiory w Apache commons-collections, w tym BoundedFifoBuffer.
w tej samej bibliotece, jest również BoundedBuffer i CircularFifoBuffer
Dlaczego nie wystarczy użyć LinkedBlockingQueue
i użyć metod non-blocking offer
(lub add
) i poll
do niego dostęp? Możesz utworzyć go ze stałą wydajnością (tzn. Aby był ograniczony).
Kolejna dobra opcja. Dzięki. – Justin
Prawdopodobnie nie warto się tym martwić, ale LinkedBlockingQueue nadal będzie blokował. Przyszłe wersje hotspotu zapewne zoptymalizują to. Ale coś, o czym należy pamiętać, gdy później profilujesz. –
Ostatnio używałem Google Collections. Myślę, że z łatwością możesz mieć rozwiązanie Java Generics. Istnieje klasa o nazwie ForwardingList, która moim zdaniem mogłaby całkiem łatwo zrealizować ten pomysł. Oczywiście nie tak łatwe, jak po prostu przy użyciu BoundedFifoBuffer (nie generycznych) lub 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. Node.js - Mongoose - Sprawdź, czy istnieje zbiór
- 2. Czy istnieje odpowiednik zestawu Java w php?
- 3. Czy istnieje sposób na przekształcenie obserwowalnej kolekcji w zwykłą kolekcję?
- 4. Czy istnieje zbiór starych problemów bezpieczeństwa z opisem i ćwiczeniem kodu platformy Java?
- 5. Tworzenie równoległej kolekcji Scala z kolekcji Java
- 6. szyn: Render zbiór częściowy: Uzyskanie wielkości kolekcji wewnątrz częściowego
- 7. Czy mogę zainicjować niezmienny zbiór BCL za pomocą nawiasów klamrowych?
- 8. recvfrom() błąd 10035 przy użyciu nieblokujących gniazd
- 9. Czy istnieje parser Java dla języka Java?
- 10. Czy Java Kernel rzeczywiście istnieje?
- 11. Czy istnieje osadzalna alternatywa Java dla Redis?
- 12. Dziedziczenie w interfejsach kolekcji java
- 13. Jak ustawić url zbiór za
- 14. zbiór różnych typów generycznych
- 15. Java otrzymuję ostatni element kolekcji
- 16. Czy istnieje metoda Java Stream równoważna kolekcjom Scali "collect"?
- 17. Jakiej biblioteki kolekcji Java polecasz?
- 18. Czy istnieje posortowana kolekcja java, która obsługuje duplikaty?
- 19. Czy istnieje dobry wzór do ujawnienia kolekcji ogólnej jako readonly?
- 20. Czy istnieje sposób pobrania nazwy pola kolekcji w mongodb?
- 21. Czy istnieje interfejs kolekcji .NET, który uniemożliwia dodawanie obiektów?
- 22. Szkielet: Jak sprawdzić, czy model już istnieje w kolekcji?
- 23. Czy istnieje sposób na wykorzystanie kolekcji na stosie w Rust?
- 24. Java otrzymuje ogólny typ kolekcji
- 25. Czy możesz pomóc mi zebrać zbiór materiałów online Java Best Practices?
- 26. Zbiór kluczy/wartości, który zachowuje porządek
- 27. Czy istnieje klasa IndexSet i klasa Range dla Java?
- 28. Mapowanie pogrupowany zbiór używając AutoMapper
- 29. Java 8 ogólnych kolekcji z opcjami
- 30. Czy istnieje jakaś biblioteka ActiveResource dla Java?
Dzięki, jakoś wylądowałem na przestarzałej stronie. – Justin