-
调度
在传统操作系统中,拥有资源和被操作系统独立调度的基本单位都是进程。但是引入线程之后,线程成为操作系统独立调度的基本单位,而进程则仍是拥有系统资源的独立单位。
在同一进程中,线程的切换不会引起进程的切换。但是,不同进程中线程的切换势必会引起进程之间的切换。
-
拥有资源
不论是传统的还是引入线程概念的操作系统,进程都是拥有系统资源的基本单位,线程不拥有资源(除了一点线程运行时所必须要的资源),但是线程共享其隶属进程的系统资源。
-
并发性。
在引入线程的操作系统中,不仅操作系统内的进程可以并发执行,而且同一进程内的线程也可以并发执行,从而可以使操作系统具有更好的并发性,大大提高了系统吞吐量。
-
系统开销。
创建和销毁进程时,系统都要为之分配或回收资源,如内存空间、IO设备等,因此操作系统所付出的开销远大于创建或撤销线程的开销。
类似的,在进行进程切换时,涉及当前执行进程CPU环境的保护以及新调度的进程CPU环境的设置,这是需要花时间的;而线程切换时只需要保存和设置少量寄存器内容,因此开销很小。
另外,由于同一进程内的多个线程共享进程的地址空间,因此这些线程之间的同步和通信都比较容易实现。
-
地址空间。
进程的地址空间是相互独立的,同一进程内的线程是共享进程的资源的,某一个进程内的线程对于其他进程来说是不可见的。
-
通信方面。
进程之间的通信需要特殊的IPC机制,需要借助操作系统,而进程内的线程之间的通信可以直接读写数据段(如全局变量等)来进行通信。
进程与线程的区别
最新推荐文章于 2023-03-04 21:37:26 发布