千恋*万花

  • 首页
  • 个人简历
  • 文章分类
    • 后端开发
    • 运维
    • 基础知识
    • 笔记
    • 工作运维记录
    • 随笔
    • 未分类文章
  • 管理
    • 后台管理
    • 登出
萌奈の笔记簿
分享我的努力,希望为你助力
  1. 首页
  2. 基础知识
  3. 正文

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

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

并发

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

并行

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

进程

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

线程

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

协程

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

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: 协程 学习心得 并发 并行 操作系统 线程 计算机操作系统 进程
最后更新:2022-10-27

初音萌奈

我是练习时长 一年半 的后端开发程序员 谢谢你参观我的博客! 本网站现已支持IPv6 ☞ 个人简历 ☜

点赞
< 上一篇
下一篇 >
文章目录
  • 并发
  • 并行
  • 进程
  • 线程
  • 协程

COPYRIGHT © 2023 HatsuneMona ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

晋ICP备17007130号-4