私はJavaを初めて使用しています。以下は、スレッドと同期の例としてのコードです。スレッドと同期の例
public class A implements Runnable{
public synchronized void run(){
/*
some code here
*/
}
}
public class B {
public static void main(String[] args){
A obj1 = new A();
Thread t = new Thread(obj1);
A obj2 = obj1;
Thread t1 = new Thread(obj2);
t.start();
t1.start();
}
}
ここで、この2つのスレッドは、同じロックで互いにブロックするか、2つの異なるロックを取得しますか?
ありがとうございました!
の混合を得ているなぜあなたは、コードを自分で実行して、あなたの質問への答えが見つかりませんか? – Paul
@Paul - **確定的な**答えは得られないからです。それは*あなたがそれを実行するたび* 1つのスレッドが他のスレッドをブロックするように見えることを伝えます。しかし、実際にブロッキングが行われている(OPが認識していない他の仮説的メカニズムとは異なります)、ブロッキングが常に発生することをOPに伝えません。 –
@Paul - 私が言っていることは、同期をブラックボックスとして扱い、実験的に使う方法を理解しようとすることは、健全なアプローチではないということです。あなたは、後であなたを噛んでしまうあらゆる種類の虚偽の概念を得る責任があります。 –