私はjavaで同期を学習しています。今日、以下のサンプルコードを打ちました。Javaのマルチスレッド同期
以下のコードでは、test()メソッドが同期されています。だから、私はTH1 '完了ですsのテスト()呼び出しをしてからTH2' 仮定のテスト()呼び出しが開始します。しかし、そういうことは起こっていません。出力は互いに織り込まれています。理由を理解するのを助けてくれますか?
public class MyThread {
public static void main(String[] args)
{
SampleThread sample = new SampleThread("one");
Thread th = new Thread(sample);
th.start();
SampleThread sample2 = new SampleThread("two");
Thread th2 = new Thread(sample2);
th2.start();
}
}
class SampleThread implements Runnable
{
public SampleThread(String name)
{
this.name=name;
}
String name;
@Override
public void run() {
test();
}
public synchronized void test()
{
for(int j=0;j<10;j++)
{
System.out.println(name + "--" + j);
}
}
}
ありがとう! – expert