当前位置: 首页 > news >正文

python并发和并行_python并发编程(并发与并行,同步和异步,阻塞与非阻塞)

1.并发和并行

并发:在操作系统中,是指一个时间段中有几个程序都处于已启动到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻电商只有一个程序在处理机上运行。简言之,是只系统具有处理多个任务的能力。

并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程是,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。简言之,是指系统具有用时处理多个任务的能力。

2.同步和异步

同步:当进程执行IO(等待外部数据)的时候,-----等。同步(例如打电话的时候必须等)

异步:当进程执行IO(等待外部数据)的时候,-----不等,去执行其他任务,一直等到数据接收成功,再回来处理。异步(例如发短信)

当我们去爬取一个网页的时候,要爬取多个网站,有些人可能会发起多个请求,然后通过函数顺序调用。执行顺序也是先调用先执行。效率非常低。

3.阻塞和非阻塞

阻塞:只要有一丁点阻塞,就是阻塞IO。比如一个线程占用了临界区资源,那么其它所有需要这个资源的线程就必须在这个临界区中进行等待,等待会导致线程挂起。这种情况就是阻塞,此时,如果占用资源的线程一直不愿意释放资源,那么其它所有阻塞在这个临界区上的线程都不能工作。

非阻塞:而非阻塞允许多个线程同时进入临界区。。

有些人常把同步阻塞和异步非阻塞联系起来,但实际上经过分析,阻塞与同步,非阻塞和异步的定义是不一样的。同步和异步的区别是遇到IO请求是否等待。阻塞和非阻塞的区别是数据没准备好的情况下是否立即返回。同步可能是阻塞的,也可能是非阻塞的,而非阻塞的有可能是同步的,也有可能是异步的。

相关文章:

  • oracle rds 运维服务_我应该为无服务器应用程序选择哪个数据库?
  • cmd传入命令行打开程序_CMD命令行中以管理员权限启动应用程序实现方法
  • gb和gib的区别_GB和GiB的区别
  • p6与project哪个软件好_多功能记事本软件哪个好?
  • python tensorflow教程推荐_有哪些学习python和tensorflow的书籍值得推荐呢?
  • 计算机网络课设telnet_修改windows的telnet默认根路径
  • centos7安装php5.2yum源操作_centos 7.4系统yum安装php最新版本php7.2
  • 笔记本卡顿不流畅是什么原因_电脑卡顿不流畅是什么原因?PC卡顿原来可以这么解决...
  • web前端行业调研报告_2015 年 JavaScript 开发者调查报告
  • centos7双机搭建_centos 7之keepalived双机热备理论+配置文件详解
  • uni 获取本地文件_uni-app 接口 - 从本地相册选择图片或使用相机拍照
  • oracle 日期改字符格式_oracle中的日期格式及和字符转换
  • chrome切换前端模式_谷歌 Chrome 默认启用HTML5模式
  • payload sql注入_Web安全:SQL注入工具
  • java负数右移_Java中的左移时的负数问题
  • [NodeJS] 关于Buffer
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • avalon2.2的VM生成过程
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Js基础知识(一) - 变量
  • Material Design
  • npx命令介绍
  • PHP CLI应用的调试原理
  • Python socket服务器端、客户端传送信息
  • python学习笔记 - ThreadLocal
  • Spring声明式事务管理之一:五大属性分析
  • SQL 难点解决:记录的引用
  • Vim 折腾记
  • Vue全家桶实现一个Web App
  • vue中实现单选
  • 测试如何在敏捷团队中工作?
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 如何编写一个可升级的智能合约
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 详解NodeJs流之一
  • 小试R空间处理新库sf
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​业务双活的数据切换思路设计(下)
  • #if和#ifdef区别
  • #pragma once
  • (175)FPGA门控时钟技术
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (LeetCode 49)Anagrams
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (ZT)出版业改革:该死的死,该生的生
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (五)MySQL的备份及恢复
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算