同步与异步、并发与并行、阻塞与挂起

  • 同步与异步
  • 并行与并发
  • 阻塞与挂起

同步与异步

  同步(synchronous)是指多个有相互之间一定联系的并发执行的进程,通过一定的机制,使之有序执行,从而使其总的运行结果符合预期。

  异步(asynchronous)是指多个有相互之间一定联系的并发执行的进程,执行时相互之间没有约定一定的次序。

并行与并发

  并行(parallellism)是指两个及以上个进程在同一时刻(时间点)同时执行。

  并发(concurrency)指两个及以上个进程在同一时间间隔(时间段)内同时执行。

  在宏观上,多个同时执行的进程,如果位于单处理机中执行,在微观上,它们只能分时交替地执行。只有它们位于多处理机中执行,才可能存在微观上的同时执行。

阻塞与挂起

  阻塞(block)是指当前进程因操作系统分配的时间片用完之外的、因某资源没有满足的原因不能继续运行,从而交出当前 CPU 的使用权而暂停的一种状态。而当之前缺少的该资源被满足之后,该进程将被解除阻塞而逐步恢复之前的运行状态。

  挂起(suspend)是指当前进程发生了内存等共享资源的紧急不足,或者由于用户的意愿,现阶段不需要运行等原因,处于一种不接受操作系统调度的状态。阻塞与之的区别在于,当之前缺少的该资源被满足之后,处于阻塞状态的进程将自动被解除现在的暂停运行的状态,这个自动的过程是由操作系统设法完成的。但对于处于挂起状态的进程来说,当前暂停运行的状态不会自动被解除,除非用户主动对其进行激活。

同步与异步、并行与并发、阻塞与挂起相关推荐

  1. 理解:什么是同步和异步?什么是阻塞和非阻塞?

    一.同步和异步 同步与异步是指访问数据的机制,同步一般指主动请求并等待IO操作完成的方式. 异步则指主动请求数据后便可以继续处理其它任务,随后等待IO操作完毕的通知. 同步和异步最大的区别就在于:同步 ...

  2. 多线程是并行还是并发_并发,并行,线程,进程,异步和同步有相关性吗?

    本文翻译自:https://medium.com/swift-india/concurrency-parallelism-threads-processes-async-and-sync-relate ...

  3. 同步、异步与阻塞、非阻塞经典段子(来自网络)

    老张爱喝茶,废话不说,煮开水. 出场人物:老张,水壶两把(普通水壶,简称水壶:会响的水壶,简称响水壶). 1 老张把水壶放到火上,立等水开.(同步阻塞) 老张觉得自己有点傻 2 老张把水壶放到火上,去 ...

  4. GIL、进/线程池、同/异步、阻/非阻塞

    1 GIL:全局解释器锁 GIL本质就是一把互斥锁,是夹在解释器身上的, 同一个进程内的所有线程都需要先抢到GIL锁,才能执行解释器代码 2.GIL的优缺点: 优点: 保证Cpython解释器内存管理 ...

  5. 并发、并行、串行、同步、异步、阻塞、非阻塞

    并发.并行.串行.同步.异步.阻塞.非阻塞 实际上同步与异步是针对应用程序与内核的交互而言的. 同步过程中进程触发IO操作并等待(也就是我们说的阻塞)或者轮询的去查看IO操作(也就是我们说的非阻塞)是 ...

  6. 一文读懂并发与并行,同步与异步阻塞

    并发与并行 并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法, 实现用多个任务"一起"执行(实际上总有一些任务不在执行,因为切换任务的速度相当快, 看上去一起执行而 ...

  7. python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...

    python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...

  8. 探究并发和并行、同步和异步、进程和线程、阻塞和非阻塞、响应和吞吐等

    一. 并发和并行 操作系统扫盲: 1. 对于单核cpu而言(不管单核单线程也好,单核多线程也罢),同一时间只能干一件事!!为了看起像可以"同时干多件事",windows操作系统把c ...

  9. python并发处理同一个文件_python并发编程(并发与并行,同步和异步,阻塞与非阻塞)...

    最近在学python的网络编程,学会了socket通信,并利用socket实现了一个具有用户验证功能,可以上传下载文件.可以实现命令行功能,创建和删除文件夹,可以实现的断点续传等功能的FTP服务器.但 ...

最新文章

  1. mac或linux下JDBC的简单实现,图文介绍(附测试源码)
  2. Linux服务器Zookeeper+Dubbo环境搭建
  3. pg多线程更新会发生死锁_何时用多线程?多线程需要加锁吗?线程数多少最合理?...
  4. 网络安全:与 TCP 连接管理相关的网络攻击
  5. android设置时间widget,【Android】时间与日期Widget(DatePicker 与 TimePicker)
  6. python pandas dataframe基本使用整理
  7. 基于stm32F4的项目总结:控制层设计(四)直流有刷电机驱动原理及驱动器选型
  8. 请不要嘲笑有梦想的罗永浩
  9. 【C/C++】共用体(union)
  10. java pgm_如何读取Java中的PGM图像?
  11. 超酷flv网页播放器 CKplayer V5.7
  12. 创业公司产品经理生存指南
  13. Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
  14. “开源社”成立:众人同心,其利断金
  15. iMazing2021mac win最先进的苹果iPhone和iPad管理软件
  16. 互联网产品交互设计思路与方法
  17. 201912月灵感记录
  18. Mock工具介绍,为什么使用Mock?
  19. HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。...
  20. 变分推断 (Variational Inference) 解析

热门文章

  1. 【Redis学习】Redis管理命令总结
  2. 并发编程之Synchronized
  3. Spring Cloud构建微服务
  4. 简单爬虫-爬取免费代理ip
  5. 数据库:mongodb与关系型数据库相比的优缺点zz
  6. [ solr入门 ] - 利用solrJ进行检索
  7. linux+geth+不能同步公链数据,以太坊(ETH)同步公链数据
  8. 不停刷朋友圈的人_不停刷新闻、朋友圈、微信群的朋友,休息一下,看多了伤身!...
  9. 定位到某个单词_【侃侃单词】词根词缀记单词-loc
  10. springboot热部署工具