JAVA进阶 Thread学习01
什么是线程
线程是属于进程的一部分,也是系统调度的最小单位。而相应的线程就是分配资源的最小单位。
怎么来理解呢?可以把一个个进程看成一个一个小房间,而线程就是房间里面划分出来的座位,每一个进程都最少有一个线程。进程就把总的内存空间分配成房间一样的小块的内存空间,而线程就可以在这样的空间里面运行。
为什么需要线程?
因为线程比进程更轻小快捷
创建快
销毁快
调度快
线程与进程的区别
这里再举个比较好理解的例子,每个银行都有很多个柜台。银行可以看成分配出内存空间的进程,柜台看成在内存空间中运行的线程。
同一家银行管理所有在这里办理的业务,所以同一个进程中的线程的内存空间是共享的。但是不同银行的信息不可能随便流通,所以进程与进程之间是不共享内存空间的。
这里只是举了个方便理解的例子,不需要细究其中的细节,当作理解进程与线程的工具就好了。
第一个简单的多线程程序
每个线程都是独立的执行流,线程之间"并发"执行
public class JAVA_THREAD01 {
private static class MyThread extends Thread{
public void run(){
System.out.println(Thread.currentThread().getName());
}
}
public static void main(String[] args){
MyThread t0=new MyThread();
MyThread t1=new MyThread();
MyThread t2=new MyThread();
t0.start();
t1.start();
t2.start();
}
}
继承Thread类
重写run方法
在主函数中实例化自己的Thread类
调用Thread的start方法