大家好,这道题我不太明白,求辅导:
public static void main(String[] args) {
System.out.println("start");

new Thread(new Runnable() {
public void run() {
System.out.println("step2");
}
}).start();
System.out.println("step1");
new Thread(new Runnable() {
public void run() {
System.out.println("step3");
}
}).start();
System.out.println("end");

}另外,如果我想输出 start step2 step1 step3 end的话怎么弄?

解决方案 »

  1.   

    可以使用thread.join()package snippet;public class Snippet {
    public static void main(String[] args) throws Exception {
    System.out.println("start"); Thread t1 = new Thread(new Runnable() {
    public void run() {
    System.out.println("step2");
    }
    });
    t1.start();
    t1.join(); System.out.println("step1"); Thread t2 = new Thread(new Runnable() {
    public void run() {
    System.out.println("step3");
    }
    });
    t2.start();
    t2.join();
    System.out.println("end"); }
    }
      

  2.   

    thread.join() 这个是合并线程,就是将其它线程和main线程执行在一起
      

  3.   

    java 的线程优先级是不完全可靠的。
      

  4.   


    System.out.println("start");Thread t1 = new Thread(new Runnable() {
    public void run() {
    System.out.println("step2");
    }
    });
    t1.start();
    t1.join();//用join方法
    System.out.println("step1");
    Thread t2 = new Thread(new Runnable() {
    public void run() {
    System.out.println("step3");
    }
    });
    t2.start();
    t2.join();//
    System.out.println("end");
      

  5.   

    只能通过 join()方法阿
    线程优先级也是 在许多次执行状态下,优先执行级别高的,这都是宏观状态阿
    级别低的线程还是能分到CPU时间片,只不过概率 更低阿
    这个 无法控制
      

  6.   

    线程的优先级是可以定制的,有同步线程和异步线程,一般Java的线程的优先级不好确定。