java:多线程新手问题

写了两个thread,然后在main函数里这样写

Thread t1 = new Thread(new Task1());

Thread t2 = new Thread(new Task2());

t1.start();

t2.start();

t1、t2并没有并发执行
而这样写

new Thread(new Task1()).start();

new Thread(new Task2()).start();

task1、task2就并发执行了
新手想知道为什么,谢谢
更多

第一个 在两个线程的run()方法中 都写一个sleep 就可以看到效果了

好吧,第一个也并发执行了,大概是第一种写法时延比较大所以当我把每个任务都弄长点的时候就看出并发执行了

这个都是可以并发执行的吧,你搞一个大循环,执行时间比较长的就能看出来了

你可以在两个start方法前输出当前时间来看看