在一个java程序里有三个线程main() t1 和t2 。它们可以分时进行,怎么知道main()执行完哪条语句执行t1,t1 执行完哪句执行t2,顺序怎么判断呢。谢谢

解决方案 »

  1.   

    这个是判断不了的,按时间片来分配时间然他们运行。当我们调用一个线程的.start()方法后,这个线程就会进入等待队列中,当别的线程时间片到期了,轮到该线程执行了,那么他就开始执行,不是说调用了.start(),该线程就开始执行。所以你并不知道主线程运行到什么地方,时间片刚好就到期了。除非你在主函数里面写一个循环,每次打印不同的信息,当控制台显示线程切换的时候,最后的输出就是主函数执行的最后一条语句,如果下一次轮到主函数执行了,就会从下一条开始执行。
      

  2.   

    线程start以后,它就独立了,跟主线程并发执行,从而跟主线程中的语句没有顺序关系,也不可预测