我有一个链表samples
:LinkedList是线程安全的,当我使用offer和poll进行访问时,它是线程安全的吗?
protected LinkedList<RawDataset> samples = new LinkedList<RawDataset>();
我追加元素到列表中的线程1这样的:
this.samples.offer(data);
而且我从检索它的元素在第二个线程像所以:
public RawDataset retrieveSample() {
return this.samples.poll();
}
这是否被认为是线程安全的?即使线程1和2都在修改列表,他们只能在列表的首部或尾部进行修改,对吧?
如果不是任何人都可以指向我的一个类,那么在poll
/offer
附带的Java API中肯定是线程安全的?
预先感谢您。
顺便说一句:Collections.synchronizedList(new LinkedList())
将不会给我访问offer
/poll
。
方法'offer'和'poll'实际上declard接口'Queue',除了List接口以外,它由LinkedList实现。这就是为什么这些方法对Collections.synchronizedList的结果不可用。 – 2010-07-29 12:05:12