スレッドをテストするために並行処理クラスを作成しました。スレッドを同時に実行する最良の方法を見つけたかったからです。
私は自分の結果に驚いています:
test
test
Othertest
test
Othertest
test
test
test
私が予想した結果は、スレッドがランダムに戻ってくるというものでしたが、一貫して同じ順序で戻ってきたようです! 誰かが理由を知っていますか?これは、それらが同時に実行されていないことを意味しますか? それらを同時に実行するにはどうすればよいですか?
これが私のコードです:
public class ThreadTest {
public static void main(String args[]) throws InterruptedException
{
new Thread(new ThreadTest().test()).start();
new Thread(new ThreadTest().test()).start();
new Thread(new ThreadTest().otherTest()).start();
new Thread(new ThreadTest().test()).start();
new Thread(new ThreadTest().otherTest()).start();
new Thread(new ThreadTest().test()).start();
new Thread(new ThreadTest().test()).start();
new Thread(new ThreadTest().test()).start();
}
public Runnable test() throws InterruptedException{
Thread.sleep((long) (Math.random()*1000));
System.out.println("test");
return null;
}
public Runnable otherTest() throws InterruptedException{
Thread.sleep((long) (Math.random()*1000));
System.out.println("Othertest");
return null;
}
}