我的疑问时start()方法开始后,会不会main方法先执行一会儿呢!再读到join(),让自定义线程先执行完,再继续执行main。
但是每次都是先执行自定义线程,再执行main。有些不解!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();
} }
}
}

解决方案 »

  1.   

    当然不会啊,join()---等待该线程终止
    终止了才继续啊,就像加了一些代码在那里一样,顺序执行。
      

  2.   

    问题:
    我的疑问时start()方法开始后,会不会main方法先执行一会儿呢!再读到join(),让自定义线程先执行完,再继续执行main。 
    但是每次都是先执行自定义线程,再执行main。有些不解! 解答:
    start()以后并不是立即马上执行其run方法,而是过了一小会才执行run方法,其实你的开始想法是正确的,
    我想问一下,没有main线程,怎么去执行自定义线程,