我的疑问时start()方法开始后,会不会main方法先执行一会儿呢!再读到join(),让自定义线程先执行完,再继续执行main。
但是每次都是先执行自定义线程,再执行main。有些不解!
- Java code
package com.justdoit.thread;public class TestJoin { public static void main(String[] args) { MyThread2 my = new MyThread2("MyThread2"); my.start(); try { my.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } for(int i=0;i<=10;i++){ System.out.println(i+Thread.currentThread().getName()); } }} class MyThread2 extends Thread{ MyThread2(String name){ super(name); } public void run(){ for(int i=0;i<=10;i++){ System.out.println(i+Thread.currentThread().getName()); try { sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}
------解决方案--------------------------------------------------------
当然不会啊,join()---等待该线程终止
终止了才继续啊,就像加了一些代码在那里一样,顺序执行。