说我有这样的事情(我确实有)
class QueBean extends JPanel {
private Queue queue = new LinkedBlockingQueue();
public Object poll(){
return queue.poll();
}
}
其中一些在自己的线程上运行
class ConsumerBean extends JPanel implements Runnable{
private QueBean queBean;
public synchronized run(){
while (true) {
Object result = queBean.poll();
if (result != null) {
jResultTextField.setText("got one");
}
wait(500);
}
}
}
poll()
中的 QueBean
是否应该是 synchronized
? 最佳答案
在这种情况下不需要外部同步。阅读 BlockingQueue
合约:
关于java - 我是否必须同步对 Java 中封装的线程安全数据结构的访问?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2239200/