千恋*万花

  • 首页
  • 分类目录
    • ------编程学习------
    • 计算机网络
    • Golang 心得
    • ------运维日记------
    • 站点运维记录
    • ------萌奈的碎碎念------
  • 萌奈的朋友们(友链)
    • 某初雪的无名Blog
    • 欠陥電気の摸鱼小池
  • 管理
    • 后台管理
    • 登出
萌奈の笔记簿
HatsuneMona 什喵的最可爱了喵!
  1. 首页
  2. 学习心得
  3. 正文

并发、并行、进程、线程、协程

2021-03-12 1362点热度 0人点赞 0条评论

并发

  在一个CPU上,创建多个任务,在很短的时间内,让CPU来回切换任务执行它们。让用户看起来这些任务像是在同时执行,但是对于计算机来说,这些任务实际上还是一个接一个地顺序执行的。
  它强调一个CPU可以在同一时刻,接受很多个任务,但在执行的过程中还是一个一个任务地执行。

并行

  在多个CPU上,创建多个任务,让每一个CPU都分到需要自己单独计算的任务。每个任务不被CPUs争抢,同时进行。用户看起来这些任务在同时进行,对于计算机而言,这些任务也是同时进行的。
  它强调好多个CPU可以在同一时刻,分别处理自己手上的任务,但在执行的过程中这些任务是同时计算的。

进程

  cpu在切换程序的时候,需要保存上一个程序的状态(就是我们常说的context上下文),不能直接从程序A切换到程序B。进程就是用来划分不同的程序运行时所需要的资源。
  进程是一个程序运行时候的所需要的基本资源单位。

线程

  cpu切换多个进程的时候,每个进程有不同的运行时所需要的资源,来回保存的过程中会花费不少的时间,进程一旦多起来,cpu调度会消耗一大堆资源。
  线程本身几乎不占资源,同一个进程中的每个线程之间共享资源,对内核来说,无需来回保存不同进程的上下文,节省了切换上下文时的CPU资源。
  对于同一个程序来说,如果需要并发计算,创建很多进程和创建了很多线程,后者可以节省切换上下文所需要使用的CPU资源。

协程

  协程是轻量级的线程,它们实现的功能差不多。两者最大的差别是进行切换操作的对象不同,线程、进程由操作系统负责切换;协程由用户程序自己进行切换(即Go routine负责切换)。在协程之间的切换不需要涉及任何系统调用或任何阻塞调用。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: 协程 并发 并行 操作系统 线程 进程
最后更新:2021-09-30

初音萌奈

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2021 HatsuneMona ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

晋ICP备17007130号-4