私はjavaでの同期を理解しようとしています。私は(最初に入力した誰でも)1つのスレッドを期待していた、上記の例から、 forループ同期メソッド
public class TestThr implements Runnable {
public static void main(String[] args) {
Thread t=new Thread(new TestThr());
Thread t1=new Thread(new TestThr());
t.start();
t1.start();
}
@Override
public void run() {
sync();
}
public synchronized void sync(){
for (int i=0;i<10;i++){
System.out.println("Running "+Thread.currentThread().getName());
}
}
}
Output : Running Thread-0 Running Thread-1 Running Thread-0 Running Thread-1 Running Thread-0 Running Thread-1 Running Thread-1 Running Thread-1 Running Thread-0 Running Thread-1 Running Thread-1 Running Thread-1 Running Thread-1 Running Thread-1 Running Thread-0 Running Thread-0 Running Thread-0 Running Thread-0 Running Thread-0 Running Thread-0
を例を以下している反復を完了し、その後、第2の開始と完了しますが、私は一貫性のない出力を取得しています。
あなたの意見を加えてください。
ありがとうございます。
は、あなたはそれがメソッドを同期させるために何を意味するのかについての説明は、*スタックオーバーフロー*を検索しましたか? – CKing
@CKing申し訳ありませんが、同期メソッドの動作を理解できません。同じことを明確にするために私は尋ねた。 – dullpointer