进程:在系统中应用程序的执行都会用内存,每个应用程序都是一个进程;线程:每个进程在运行的时候都有多个线程会执行,java的优点就是多线程
run()方法里面放的是执行的代码片段;
start()方法是线程的启动方法;
package -------------
public class Demo01 {
int i;
public static void main(String[] args) {
Demo01.Thread1 t=new Demo01().new Thread1();
Demo01.Thread1 t1=new Demo01().new Thread1();
t.run();
t1.run();
t.start();
t1.start();
}
class Thread1 extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
for(i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+"---i="+i);
try {
sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
分析结果可知:
对象执行run(),只有一个主线程main按照代码的顺序自顶层往下层开始执行
对象执行start(),线程开始就绪,线程调解器利用线程调度系统开始交互的执行线程中的run()
总结:调用run()是顺序执行,调用start()是交互执行;