Ich habe zwei Threads, t1 und t2 der gleichen Klasse; t1 synchronisiert sich auf der Klasse selbst, während t2 auf this
(die Instanz) synchronisiert. Angenommen, t1 ist in den Synchronisationsblock eingetreten, kann t2 eingegeben werden, während t1 noch in seinem Synchronisationsblock ist?Java-Sync-Klasse und das von zwei Threads
Edit: Beispiel:
public class MyThread extends Thread{
private int id;
public MyThread(int i){id=I;}
public void run(){
if(id==1)//t1 will lock the clas
synchronize(MyThread.class){
…
}
else if(id==2) //t2 will lock the instance
synchronize(this){
…
}
}
}
Bitte den Code eingeben. Reduziere es wenn möglich auf einen einfachen Testfall. Und versuchen Sie es auch, um zu sehen, was passiert, bevor Sie fragen. Die wichtigste Fähigkeit eines Entwicklers ist die Fähigkeit zu experimentieren, um herauszufinden, wie sich Code verhält. –
Ich denke, die Antwort ist ja. Aber ich hätte die Frage falsch verstehen können, und die wirkliche Antwort könnte Nr. –
@JimGarrison sein Ich fügte ein Beispiel Code – Erez