在前面我们介绍了进程,其实线程就是一个属于进程的一个任务分支
我们用一个图先简单介绍一些什么是线程
操作系统的内核是通过PCB来描述进程的,更准确的说,一个进程需要一组PCB来描述,因为一个进程可以包含多个线程,每个线程由一个PCB描述
区别:
1.多个进程创建需要多次开辟内存资源 而 线程就不用,只是在第一个线程的时候开辟,并且在销毁的时候,线程也比进程的消耗要小得多,所以线程更加轻量化
2.进程是资源分配的基本单位,线程是调度执行的基本单位
3.同一个进程中的线程之间,是公用一块内存/文件资源的,而每个进程却是独立的
4.进程包含线程
联系:
1.当某个线程出现异常,可能会把整个进程带走(JAVA中不会出现这种情况,因为JVM中具有隔离机制)
2.线程在执行的时候,需要相互协作,不同进程中的线程要利用系统提供的公共资源区进行通信,线程也是进程的可调度实体
3.资源分给进程,线程可以使用进程中的资源
4.处理机分给线程,真正在执行的其实还是线程