zoukankan      html  css  js  c++  java
  • 进程与线程的区别

    进程的概念:

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

    线程的概念:

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

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

    比较:

    1. 调度。在引入线程的操作系统中,线程是独立调度的基本单位,进程是拥有资源的基本单位。在统一进程中,线程的切换不会引起进程切换。在不同进程中进行线程切换,如从一个进程内的线程切换到另一个进程的线程时,会引起进程切换。
    2. 拥有资源。进程是拥有资源的基本单位;而线程不拥有系统资源(也有一点必不可少的资源),但线程可以访问其隶属进程的系统资源。我们要知道,如果线程也是拥有资源的单位,那么切换线程也需要较大的时空开销,线程的概念的提出也就没有意义了。
    3. 并发性。不仅进程之间可以并发执行,而且多个线程之间也可以并发执行,从而使操作系统具有更好的并发行,提高了系统的吞吐量。
    4. 系统开销。由于创建和销毁进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等,因此操作系统所付出的开销远大于创建或者销毁线程时的开销。类似的在进行进程间切换时,涉及当前执行进程CPU环境的保存及新调度到进程CPU环境的设置,而线程切换时只需要保存和设置少量寄存器内容,开销很小。此外,由于同一进程的多个线程共享进程的地址空间,因此,这些线程之间同步与通信费城容易实现,甚至无需操作系统的干预。
    5. 地址空间和其他资源(如打开的文件):进程的地址空间之间相互独立,同一进程的各线程间共享进程的资源,某进程内的线程对于其他进程不可见。
    6. 通信方面。进程间通信(IPC)需要进程同步和互斥手段的辅助,以保证数据的一致性,而线程间可以直接读/写进程数据段(如全部变量)来进程通信。
  • 相关阅读:
    编程总结2
    编程总结1
    我的三位老师
    《秋季学期学习总结》
    CodeAction_beta02 斐波那契 (多维DP)
    bzoj3029 守卫者的挑战 (多维dp)
    修剪草坪 (单调队列)
    CF734F Anton and School (构造)
    CF359B Permutation (构造)
    CF989C A Mist of Florescence (构造)
  • 原文地址:https://www.cnblogs.com/ivoo/p/10722192.html
Copyright © 2011-2022 走看看