自自然卷
2016-10-21 03:08
采纳率: 35.7%
浏览 852
已采纳

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就并发执行了
新手想知道为什么,谢谢
更多

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • Mike_Free 2016-10-26 16:24
    已采纳

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

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 自自然卷 2016-10-21 03:11

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

    评论
    解决 无用
    打赏 举报
  • 我自叹逍遥 2016-10-21 03:43

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

    评论
    解决 无用
    打赏 举报
  • wending-Y 2016-10-21 08:56

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题