zoukankan      html  css  js  c++  java
  • 线程的理解

      说到线程就不得说进程。

    • 进程

      进程对应一个程序,每个进程对应一定的内存地址空间,并且只能使用它自己的内存空间,各个进程间互不干扰。并且进程保存了程序每个时刻的运行状态,这样就为进程切换提供了可能。当进程暂时时,它会保存当前进程的状态(比如进程标识、进程的使用的资源等),在下一次重新切换回来时,便根据之前保存的状态进行恢复,然后继续执行。这就是并发,能够让操作系统从宏观上看起来同一个时间段有多个任务在执行。换句话说,进程让操作系统的并发成为了可能。

      注意,虽然并发从宏观上看有多个任务在执行,但是事实上,任一个具体的时刻,只有一个任务在占用CPU资源(当然是对于单核CPU来说的)。

    • 线程

      线程,让一个线程去执行进程一个子任务,这样一个进程就包括了多个线程,每个线程负责一个独立的子任务,让用户感觉是同时在做多件事情的,满足了用户对实时性的要求。换句话说,进程让操作系统的并发性成为可能,而线程让进程的内部并发成为可能。

      注意,一个进程虽然包括多个线程,但是这些线程是共同享有进程占有的资源和地址空间的。进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位。

      由于多个线程是共同占有所属进程的资源和地址空间的,那么就会存在多个线程要同时访问某个资源的同步问题,这就是线程同步问题。

    • 线程与进程的区别归纳:

      a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。

      b.通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。

      c.调度和切换:线程上下文切换比进程上下文切换要快得多。

      d.在多线程OS中,进程不是一个可执行的实体。

  • 相关阅读:
    redis
    配置ssh无密码登陆Linux
    nginx rewrite规则笔记
    git自动部署到服务器
    从电影《Her》来看AI时代下,未来的七夕我们将会如何度过?
    人工智能+智能制造,会产生什么火花?
    大数据时代,市场对企业级云存储的需求更加迫切
    别太神化AI,也别太小看智能医疗
    自动驾驶江湖,将有一场恶战
    区块链 | 详解以太坊的工作原理
  • 原文地址:https://www.cnblogs.com/lcngu/p/5140537.html
Copyright © 2011-2022 走看看