【发布时间】:2019-04-28 13:59:34
【问题描述】:
我正在编辑LinkedList 并收到警告,因为我的同步变量不是最终的。如何使这个线程安全?
我正在尝试在 LinkedList 上进行同步,但我收到了来自 IDE 的警告,指出在非最终字段上同步不太可能有用。
我尝试了一个私有锁对象,但是当我使用它进行同步时,我得到了以下异常:java.lang.IllegalMonitorStateException
protected List<ServerDataEvent> _queue = new LinkedList<>();
synchronized (_queue) {
while(_queue.isEmpty()) {
try {_queue.wait(); } catch (InterruptedException e) {}
}
dataEvent = _queue.remove(0);
}
我想让这个线程安全,但除非我在LinkedList 上同步,否则我无法让程序运行。谁能指点我需要做些什么来解决这个问题?谢谢
【问题讨论】:
-
如果您因为它不是最终版本而收到警告,您是否考虑过...使其成为最终版本?
标签: java concurrency synchronization