У меня есть связанный список samples
:
protected LinkedList<RawDataset> samples = new LinkedList<RawDataset>();
Я добавляю элементы в список в потоке 1 следующим образом:
this.samples.offer(data);
И я извлекаю элементы из него во втором потоке, например:
public RawDataset retrieveSample() {
return this.samples.poll();
}
Будет ли это рассматриваться как потокобезопасное? Несмотря на то, что нить 1 и 2 изменяют список, они делают это только по голове или хвосту списка, правда?
Если это не может кто-нибудь указать мне класс в Java API, который поставляется с poll
/offer
и наверняка будет потокобезопасным?
Спасибо заранее.
BTW: Collections.synchronizedList(new LinkedList())
не даст мне доступ к offer
/poll
.