进程:正在运行的程序
-
是系统进行资源分配和调用的独立单位
-
每一个进程都有它自己的内存空间和系统资源
线程:是进程中的单个顺序控制流,是一条执行路径 -
单线程:一个进程如果只有一条执行路径,则称为单线程程序
-
多线程:一个进程如果有多条执行路径,则称为多线程程序
举例 -
记事本程序
-
扫雷程序
线程是程序中执行的线程。Java虚拟机允许应用程序同时执行多个执行线程。
创建一个新的执行线程有两种方法。
一个是将一个类声明为Thread类的子类,这个子类应该重写Thread类的run()方法。
方式一:继承Thread类 -
定义一个类MyThread类继承Thread类
-
在MyThread类重写run()方法
-
创建MyThread类的对象
-
启动线程
public class Mythread extends Thread{
void run(){
for(int i=0;i<=1000;i++){
System.out.println(i)
}
}
}
public class Demo{
public static void main(string[] args){
MyThread my1=new MyThread();
MyThread my2=new MyThread();
//my1.run();
//my2.run();
//void start()导致此线程开始执行,Java虚拟机调用此线程的run()方法
my1.start();
my2.start();
}
}
两个小问题:
-
为什么要重写run()方法?
因为run()是用来封装被线程执行的代码 -
run()方法和start()方法的区别?
run():封装线程执行的代码,直接调用,相当于普通方法的调用。
satrt():启动线程,然后由JVM调用此线程的run方法