Come dice il titolo, mi piacerebbe ottenere un HashSet sicuro per thread usando le raccolte Guava.HashSet thread-safe con le raccolte Guava
Potete aiutarmi?
Grazie!
Come dice il titolo, mi piacerebbe ottenere un HashSet sicuro per thread usando le raccolte Guava.HashSet thread-safe con le raccolte Guava
Potete aiutarmi?
Grazie!
Questa sarebbe la risposta giusta, utilizzando la classe Sets di Guava. Ad ogni modo la risposta di @crhis era buona cosa.
Sets.newSetFromMap(new ConcurrentHashMap<V, Boolean>());
Set<K> set = Collections.newSetFromMap(new ConcurrentHashMap<K, Boolean>());
Grazie, ci proverò. – santiagobasulto
Btw, tutti i tuoi punti mi appartengono dato che ho risposto a questa domanda sulla mailing list guava, 8 minuti prima che fosse pubblicato qui;) – whiskeysierra
@Willi: Se potessi assegnarli a te, lo farei, perché ho già colpito il mio cappellino per il giorno, quindi non ho assolutamente nessun rappresentante per questa risposta. :-P –
Google Collezioni avevano un metodo factory chiamato Sets.newConcurrentHashSet() per un po '.
La sua attuazione era simile al suggerimento di Chris:
public static <E> Set<E> newConcurrentHashSet() {
return newSetFromMap(new ConcurrentHashMap<E, Boolean>());
}
avevano un newSetFromMap() metodo all'interno del com.google.common.collect.Sets classe (scritto da Doug Lea con l'assistenza di membri di JCP JSR-166). Questo metodo è stato aggiunto a java.util.Collections in java 1.6.
È stato ritirato in Google Collections 1.0rc1, dal momento che ci sono piani per supportare meglio i set concorrenti in Guava (ulteriori informazioni here).
This post espande l'utilizzo del metodo "newSetFromMap" per creare insiemi concomitanti.
Imposterai immutabile? – louisgab
Non avrebbe senso creare in thread-safe quando è già immutabile, non è vero? – whiskeysierra
Sei proprio Willi. Non sarà immutabile. Diversi thread la muteranno contemporaneamente. – santiagobasulto