Wenn ich so etwas wie diesesVerlässt ein Thread nach dem Blockieren alle synchronisierten Methoden oder Objekte?
synchronized void doSomething() throws Exception {
synchronized (lock1) {
lock1.wait();
}
wait();
}
Sobald es blockiert bei lock1.wait()
, werden einige andere Thread können doSomething()
zugreifen und sie funktionieren?
Was passiert, wenn der blockierte Thread signalisiert wird und wieder Zugang zur Methode erhält? wird es auf wait()
blockieren oder nicht?
Beachten Sie, dass dies nicht berücksichtigt, dass wakeups auftreten können. Siehe https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-- – Fildor