进程与线程的区别
Posted ivoo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程与线程的区别相关的知识,希望对你有一定的参考价值。
进程的概念:
- 进程是程序的一次执行。
- 进程是一个程序极其数据在处理机上顺序执行时缩发生的活动。
- 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
线程的概念:
引入进程的目的,是为了更好地使多道程序并发执行,以提高资源利用率和系统吞吐量,增加并发程度;而引入线程,则是为了减少程序在并发执行时所付出地时空开销,提高系统地并发性能。
- 线程最直接理解就是“轻量级进程”,他是一个基本的CPU执行单元,也是程序执行流地最小单元,由线程id、程序计数器、寄存器集合和堆栈组成。
- 线程是进程中地一个实体,是被系统独立调度和分派地基本单位,线程不拥有系统资源,只拥有一点在运行中必不可少地资源,但它可以与同属一个进程地其他线程共享进程所拥有地全部资源。
- 一个线程可以创建和撤销另一个线程,同一进程中地多个线程之间可以并发执行。由于线程之间的相互制约,只是线程在运行中呈现出间断性。
比较:
- 调度。在引入线程的操作系统中,线程是独立调度的基本单位,进程是拥有资源的基本单位。在统一进程中,线程的切换不会引起进程切换。在不同进程中进行线程切换,如从一个进程内的线程切换到另一个进程的线程时,会引起进程切换。
- 拥有资源。进程是拥有资源的基本单位;而线程不拥有系统资源(也有一点必不可少的资源),但线程可以访问其隶属进程的系统资源。我们要知道,如果线程也是拥有资源的单位,那么切换线程也需要较大的时空开销,线程的概念的提出也就没有意义了。
- 并发性。不仅进程之间可以并发执行,而且多个线程之间也可以并发执行,从而使操作系统具有更好的并发行,提高了系统的吞吐量。
- 系统开销。由于创建和销毁进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等,因此操作系统所付出的开销远大于创建或者销毁线程时的开销。类似的在进行进程间切换时,涉及当前执行进程CPU环境的保存及新调度到进程CPU环境的设置,而线程切换时只需要保存和设置少量寄存器内容,开销很小。此外,由于同一进程的多个线程共享进程的地址空间,因此,这些线程之间同步与通信费城容易实现,甚至无需操作系统的干预。
- 地址空间和其他资源(如打开的文件):进程的地址空间之间相互独立,同一进程的各线程间共享进程的资源,某进程内的线程对于其他进程不可见。
- 通信方面。进程间通信(IPC)需要进程同步和互斥手段的辅助,以保证数据的一致性,而线程间可以直接读/写进程数据段(如全部变量)来进程通信。
以上是关于进程与线程的区别的主要内容,如果未能解决你的问题,请参考以下文章