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

python实现并发和并行的方式有哪些_Python中的并行和并发是什么

418442a32732362ff8e7ecf81bfc59ac.png

并行和并发

无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cpu同一时刻只能执行一个任务。

并发是伪并行,即看起来是同时运行。单个cpu 多道技术就可以实现并发,(并行也属于并发),简单的可以理解为快速在多个线程来回切换,感觉好像同时在做多个事情。

只有具备多个cpu才能实现并行,单核下,可以利用多道技术,多个核,每个核也都可以利用多道技术(多道技术是针对单核而言的)。  有四个核,六个任务,这样同一时间有四个任务被执行,假设分别被分配给了cpu1,cpu2,cpu3,cpu4,一旦任务1遇到I/O就被迫中断执行,此时任务5就拿到cpu1的时间片去执行,这就是单核下的多道技术 ,而一旦任务1的I/O结束了,操作系统会重新调用它(需知进程的调度、分配给哪个cpu运行,由操作系统说了算),可能被分配给四个cpu中的任意一个去执行。

f0450fc9e9282f44db1796a97d5a30e2.png

相关推荐:《Python视频教程》

多道技术:内存中同时存入多道(多个)程序,cpu从一个进程快速切换到另外一个,使每个进程各自运行几十或几百毫秒,这样,虽然在某一个瞬间,一个cpu只能执行一个任务,但在1秒内,cpu却可以运行多个进程,这就给人产生了并行的错觉,即伪并发,以此来区分多处理器操作系统的真正硬件并行(多个cpu共享同一个物理内存)。

同步执行:一个进程在执行某个任务时,另外一个进程必须等待其执行完毕,才能继续执行。

异步执行:一个进程在执行某个任务时,另外一个进程无需等待其执行完毕,就可以继续执行,当有消息返回时,系统会通知后者进行处理,这样可以提高执行效率。

举个例子,打电话时就是同步通信,发短息时就是异步通信。

相关推荐:

Python如何实现线程间同步

相关文章:

  • java a a=null_面试题((A)null).fun()——java中null值的强转
  • java获取hashcode_java identityHashCode 和 hashCode
  • django mysql 加锁_Django数据库事务和死锁
  • 二叉树某结点的路径java_java二叉树和为某一个值的路径如何实现?思路分享
  • java清空JTextArea文本内容_java – 如何在JTextArea中更改文本的位置
  • java设计模式观察者模式吗_JAVA设计模式---观察者模式
  • java 简易的资源池_资源池设计模式 (Resource Pool)和数据池的简单实现
  • java替代重定向_Java 重定向与管道
  • java五子棋聊天功能_Java基于享元模式实现五子棋游戏功能实例详解
  • bandpass filter java_带通滤波器设计(Bandpass filter design).doc
  • java的位桶是什么,hashmap中的存储桶究竟是什么?
  • 缴费java代码_基于jsp的物业管理缴费系统-JavaEE实现物业管理缴费系统 - java项目源码...
  • java实体类间的转换_java 实体类集合转换和实体类转换
  • mysql碎片整理 提速_MysqL碎片整理优化
  • 一张纸对折13次JAVA_一张纸最多折叠8次?她把纸折叠了13次后,发生了什么?
  • __proto__ 和 prototype的关系
  • “大数据应用场景”之隔壁老王(连载四)
  • Angular 响应式表单 基础例子
  • Angular6错误 Service: No provider for Renderer2
  • canvas 高仿 Apple Watch 表盘
  • ES6语法详解(一)
  • Lsb图片隐写
  • Redis字符串类型内部编码剖析
  • Service Worker
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • VUE es6技巧写法(持续更新中~~~)
  • 关于使用markdown的方法(引自CSDN教程)
  • 强力优化Rancher k8s中国区的使用体验
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 一些关于Rust在2019年的思考
  • ​io --- 处理流的核心工具​
  • ​卜东波研究员:高观点下的少儿计算思维
  • #LLM入门|Prompt#3.3_存储_Memory
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (12)Linux 常见的三种进程状态
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C语言)共用体union的用法举例
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (南京观海微电子)——I3C协议介绍
  • (循环依赖问题)学习spring的第九天
  • (一)Neo4j下载安装以及初次使用
  • (转载)Google Chrome调试JS
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • *Django中的Ajax 纯js的书写样式1
  • .net FrameWork简介,数组,枚举
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .net 按比例显示图片的缩略图
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • /usr/bin/env: node: No such file or directory
  • @Documented注解的作用
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [bzoj1901]: Zju2112 Dynamic Rankings
  • [C#]winform部署yolov9的onnx模型