1、当线程启动时调用了start()方法,这便可体现多线程的特性,不同线程的run方法里面的代码会交替执行。
2、当线程启动时调用了run()方法,那代码还是同步的,必须等待一个线程执行完之后再执行另外线程的run方法,相当于顺序执行。
代码示例
package threads;
/**
* 第一种:继承Thread类,创建线程时,每个线程会数据隔离
* @author Administrator
*
*/
public class CreateByThread extends Thread{
private int i;
//重写run方法,run方法内的代码便是线程执行体
public void run(){
for(;i<100;i++){
System.out.println(getName()+" "+i);
}
}
public static void main(String[] args){
for(int i=0;i<100;i++){
System.out.println(Thread.currentThread().getName()+" "+i);
if(i==20){
new CreateByThread().start();//创建线程0
new CreateByThread().run();//创建线程1
new CreateByThread().run();//创建线程2
}
}
}
}