据我了解,这是Java中常见的多线程片段。
boolean loaded = false;
Object lock = new Object();
public void block() {
synchronized (lock) {
while(!loaded)
lock.wait(); // Unhandled exception type InterruptedException
}
}
在另一个线程中。
public void done () {
synchronized (lock) {
loaded = true;
lock.notify();
}
}
但我不确定应该在哪里放置try和catch,是否可以将其包围整个同步块或仅仅是lock.wait()
?有什么经验之谈吗?这是否真的很重要?
在处理时,在这种情况下调用Thread.currentThread().interrupt()
是否可以?