1、进程:正在运行的程序,是系统进行资源分配的独立单位。
2、线程:进程的执行路径,调度和执行的单位,是cpu调度的最小单位,单个路径单线程,多个路径多线程。
区别:
①调度的基本单位:在传统的OS中,进程作为独立调度和分派的基本单位,因而进程是能独立运行的基本单位。在每次被调度时,都需要进行上下文切换,开销较大。而在引入线程的os中,已把线程作为调度和分派的基本单位,因此线程是能独立运行的基本单位。在线程切换时,仅需保存和设置少量寄存器内容,切换代价远低于进程。在同一个进程中,线程的切换不会引入进程的切换,但从一个进程中的线程切换到另一个进程中的线程时,必然会引起进程的切换。
②并发性:不同进程之间可以并发执行,而在一个进程中的多个线程之间也可以并发执行,甚至还允许在一个进程中的所有线程都能并发执行。同样,不同进程中的线程也能并发执行。
③拥有资源:进程可以拥有系统资源,并作为系统中拥有资源的一个基本单位。然而,线程本上并不拥有系统资源,而是仅有一点比不可少的、能保证独立运行的资源。比如程序计算器,少数状态参数和返回地址等一组寄存器和堆栈。不过线程可以共享该进程内所有资源,比如已打开的文件,定时器,信号量机构等的内存控制接纳和它所申请到的IO设备。
④独立性:同一个进程中的不同线程之间的独立性要比不同进程之间的独立性低得多。这是因为,为防止进程之间彼此干扰和破坏,每个进程之间都拥有一个独立的地址控制和其他资源,除了共享全局变量外,不允许其他进程的访问。但是同一进程的不同线程往往是为了提高并发性以及进行相互之间的合作而创建的,他们共享进程的内存地址空间和资源,如每个线程度可以访问他们所属进程地址空间的所有地址。
⑤系统开销:在创建和撤销进程时,系统都要为之分配和回收进程控制块、分配和回收其他资源,如内存空间和I/o设备等。因此明显大于线程的创建和撤销时所付出的开销。
总的来说:多进程的意义是提高CPU使用率,而多线程的意义是为了提高应用程序的效率
一个比较生动的关于线程和进程解释的例子
进程和线程的区别及联系
最新推荐文章于 2023-03-18 00:32:47 发布