J'ai une liste chaînée samples
:LinkedList est-il compatible avec les threads lorsque j'y accède avec offre et sondage exclusivement?
protected LinkedList<RawDataset> samples = new LinkedList<RawDataset>();
J'insérer un élément dans la liste en fil 1 comme ceci:
this.samples.offer(data);
Et je récupérer des éléments de dans un second fil comme so:
public RawDataset retrieveSample() {
return this.samples.poll();
}
Est-ce que cela peut être considéré comme un thread sécurisé? Même si les threads 1 et 2 modifient tous deux la liste, ils ne le font que sur la tête ou la queue de la liste, n'est-ce pas?
Si ce n'est pas le cas, quelqu'un peut-il me diriger vers une classe de l'API Java qui est fournie avec poll
/offer
et est sûre d'être thread-safe?
Merci d'avance.
BTW: Collections.synchronizedList(new LinkedList())
ne me donnera pas accès à offer
/poll
.
Méthodes '' offer' et poll' sont en fait Declard dans l'interface 'Queue', qui est implémenté par LinkedList en plus des interfaces List. C'est pourquoi ces méthodes ne sont pas disponibles dans le résultat de Collections.synchronizedList. –