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 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制