进程和线程
进程
进程是资源分配的基本单位。
进程控制块(PCB)描述进程基本信息和运行状态,创建进程和撤销进程。
线程
线程是CPU调度的基本单位。
一个进程可以有多个线程。他们共享进程资源。
QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。
进程和线程的区别
资源方面
进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问进程的资源。
调度方面
线程时独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换。从一个进程中的线程切换到另一个进程的线程时,会引起进程的切换。
系统开销方面
创建和撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等,所带来的的开销远大于创建和撤销线程的开销。
另外,在进程切换时,涉及当前执行进程CPU环境的保存及新调度进程CPU环境的设置,但线程切换时,只需保存和设置少量子村器内容,开销很少。
通信方面
线程间可以通过直接读写同一进程中的数据进行通信,但是进程通信需要IPC