码迷,mamicode.com
首页 > 编程语言 > 详细

进程与线程的区别

时间:2019-04-18 09:17:53      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:也有   引入   地址   系统   系统资源   进程间通信   计数器   大于   一个   

进程的概念:

  1. 进程是程序的一次执行。
  2. 进程是一个程序极其数据在处理机上顺序执行时缩发生的活动。
  3. 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位

线程的概念:

引入进程的目的,是为了更好地使多道程序并发执行,以提高资源利用率和系统吞吐量,增加并发程度;而引入线程,则是为了减少程序在并发执行时所付出地时空开销,提高系统地并发性能。

  1. 线程最直接理解就是“轻量级进程”,他是一个基本的CPU执行单元,也是程序执行流地最小单元,由线程id、程序计数器、寄存器集合和堆栈组成。
  2. 线程是进程中地一个实体,是被系统独立调度和分派地基本单位,线程不拥有系统资源,只拥有一点在运行中必不可少地资源,但它可以与同属一个进程地其他线程共享进程所拥有地全部资源。
  3. 一个线程可以创建和撤销另一个线程,同一进程中地多个线程之间可以并发执行。由于线程之间的相互制约,只是线程在运行中呈现出间断性。

比较:

  1. 调度。在引入线程的操作系统中,线程是独立调度的基本单位,进程是拥有资源的基本单位。在统一进程中,线程的切换不会引起进程切换。在不同进程中进行线程切换,如从一个进程内的线程切换到另一个进程的线程时,会引起进程切换。
  2. 拥有资源。进程是拥有资源的基本单位;而线程不拥有系统资源(也有一点必不可少的资源),但线程可以访问其隶属进程的系统资源。我们要知道,如果线程也是拥有资源的单位,那么切换线程也需要较大的时空开销,线程的概念的提出也就没有意义了。
  3. 并发性。不仅进程之间可以并发执行,而且多个线程之间也可以并发执行,从而使操作系统具有更好的并发行,提高了系统的吞吐量。
  4. 系统开销。由于创建和销毁进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等,因此操作系统所付出的开销远大于创建或者销毁线程时的开销。类似的在进行进程间切换时,涉及当前执行进程CPU环境的保存及新调度到进程CPU环境的设置,而线程切换时只需要保存和设置少量寄存器内容,开销很小。此外,由于同一进程的多个线程共享进程的地址空间,因此,这些线程之间同步与通信费城容易实现,甚至无需操作系统的干预。
  5. 地址空间和其他资源(如打开的文件):进程的地址空间之间相互独立,同一进程的各线程间共享进程的资源,某进程内的线程对于其他进程不可见。
  6. 通信方面。进程间通信(IPC)需要进程同步和互斥手段的辅助,以保证数据的一致性,而线程间可以直接读/写进程数据段(如全部变量)来进程通信。

进程与线程的区别

标签:也有   引入   地址   系统   系统资源   进程间通信   计数器   大于   一个   

原文地址:https://www.cnblogs.com/ivoo/p/10722192.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!