我做了一个并发类来测试线程。因为我想找出同时运行线程的最佳方式。
我对我的结果感到惊讶:
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;
}
}