zkzk7410 2017-04-21 11:23 采纳率: 68.8%
浏览 875

★初学求指点★JAVA线程读取的顺序是什么?

public class Mythread1 implements Runnable {

@Override
public void run() {
    System.out.println("子线程开始执行");
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println("子线程执行完毕");

}

public class Mythead2 {

/**
 * @param args
 */
public static void main(String[] args) {

    System.out.println("创建线程");
    Thread td=new Thread(new Mythread1());
    td.start();
    System.out.println("执行完毕");
}

多次执行,系统输出一直是下面的结果:
创建线程
执行完毕
子线程开始执行
子线程执行完毕

疑问:这个怎么没有按照顺序来执行呀,即便main线程和子线程相互抢资源的话,子线程也有可能在“执行完毕”前显示
比如:
创建线程
子线程开始执行
子线程执行完毕
执行完毕

小弟初学,请大侠指点。谢谢

  • 写回答

3条回答

  • oyljerry 2017-04-21 11:47
    关注

    这个只是凑齐,就是每次都是主线程先跑了。子线程后运行。这理论上不能依赖这个顺序关系。需要你自己控制执行顺序

    评论

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退