学前自问:什么是线程?为什么要引入线程?
在OS中引入进程的目的是为了使多个程序能并发执行,以提高资源利用率。
在OS中引入线程是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。
1.进程是一个可拥有资源的独立单位。
2.进程是一个可独立调度和分派的基本单位。
各个进程的内存地址空间相互独立,只能通过请求操作系统内核的帮助来完成进程间的通信。
由于进程是一个资源的拥有者,因而在创建、撤销和切换中,OS必须要为之付出较大的时空开销,这就限制了系统中所设置进程的数目,而且进程切换也不宜过于频繁,从而限制了并发程度的进一步提高。
进程间通信必须请求操作系统服务,开销大。
而同进程下的线程间通信,无需操作系统干预,开销更小。
线程是进程中的一个执行单位,负责当前进程中程序的执行,一个进程中至少有一个线程。
线程又被称为轻型进程或进程元。
引入线程机制后,并发带来的系统开销降低,系统并发性提高。
同一进程下的各个线程共享内存地址空间,可直接读/写内存空间进行通信,无需操作系统干预,线程间通信开销小。
同一进程的各线程间并发不需切换进程运行环境和内存地址空间。
从属于同一进程的各个线程共享进程拥有的资源。
从属于不同进程的线程间通信,也需要操作系统干预。
执行、就绪、阻塞
什么是线程:轻量级进程,是操作系统进行调度的最小单位。
为什么要引入线程:线程可以提高系统的并发性。