区分主线程和用户定义的线程
public class MyThread extends Thread{
public void run(){
for(int a=0;a<50;a++){
try{Thread.sleep(100);}catch(Exception e){}
System.out.println(Thread.currentThread().getName()+" "+a);
}
}
public static void main(String args[]){
MyThread t1=new MyThread();
t1.start(); ====由用户定义的线程
t1.run(); ====由主线程运行
}
}
启动java虚拟机时,会自动产生一个主线程来执行main()方法。main()方法中调用的方法也由主线程执行。主线程的名字是main。
因为Java线程的调度不一定是分时的,所以你必须确保你的代码中的线程会不时地给另外一个线程运行的机会。有三种方法可以做到一点:
n
让处于运行状态的线程调用Thread.sleep()方法。
n
让处于运行状态的线程调用Thread.yield()方法。
n
让处于运行状态的线程调用另一个线程的join()方法。