Python多任务(1.多任务的介绍、并发和并行概念及小例子)
目录
1.多任务的概念
2.单核CPU是怎么解决多任务的?
3.多任务的执行方式:并发和并行
4.单任务的执行例子:
5.多任务的执行例子:
1.多任务的概念
简单地说,就是操作系统可以同一时间执行多个任务
在代码里面,就是一个程序有多个地方同时执行
打个比方,你一边用着这浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务
2.单核CPU是怎么解决多任务的?
单核:意味着同一时刻只能执行一件事情
操作系统轮流让各任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01,再切换到任务3,
执行0.01秒。。。。。这样反复的执行下去,每个任务都是交替执行的,但是由于CPU的执行速度实在是太快了,
我们感觉就像是所有任务都在同时执行一样,这就是所谓的 “时间片轮转” 。3.多任务的执行方式:并发和并行
并行: 真的多任务 (CPU的核数大于任务数量)
并发: 假的多任务 (CPU的核数小于任务数量)
真正的并行执行多任务只能在多核CPU上实现,但是,由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动 把很多任务轮流调度到每个核心上执行。
4.单任务的执行例子:
import timedef sing():"""唱歌5秒钟"""for i in range(5):print("---正在唱唱歌---")time.sleep(1)def dance():"""跳舞5秒钟"""for i in range(5):print("---正在唱跳舞---")time.sleep(1)def main():sing()dance()if __name__ == '__main__':main()
运行的结果为: 先把唱歌执行完花费5秒钟, 再花费5秒钟执行完跳舞, 一共花费10秒钟
5.多任务的执行例子:
import time import threadingdef sing():"""唱歌5秒钟"""for i in range(5):print("---正在唱唱歌---")time.sleep(1)def dance():"""跳舞5秒钟"""for i in range(5):print("---正在唱跳舞---")time.sleep(1)def main():t1 = threading.Thread(target=sing)t2 = threading.Thread(target=dance)t1.start()t2.start()if __name__ == '__main__':main()
执行结果: 唱歌和跳舞同步执行,执行一次花费1秒,所以一共执行花费5秒钟。
Python多任务(1.多任务的介绍、并发和并行概念及小例子)相关推荐
- 转一篇关于并发和并行概念的好文,附带大神评论
转自:https://laike9m.com/blog/huan-zai-yi-huo-bing-fa-he-bing-xing,61/ 还在疑惑并发和并行? OK,如果你还在为并发(concurre ...
- C#多线程、并发与并行概念
软件开发,网站开发过程中经常有并发,并行这样的多线程处理与应用.因此,有必要对其进行了解与掌握. 多线程: 在了解线程之前,要先知道进程这个概念.进程是一个具有独立功能的程序关于某个数据集合的一次运行 ...
- C#语法之---多线程、并发与并行概念总结
转自:http://blog.csdn.net/qq_33290787/article/details/51790605 软件开发,网站开发过程中经常有并发,并行这样的多线程处理与应用.因此,有必要对 ...
- 进程、线程、并发和并行概念
一.进程和线程 进程是一个运行起来的可执行程序.进程有三种状态: 就绪 进程获得了除了CPU外所有必要资源 运行 进程获得了所有资源,开始执行 阻塞 进程正在尚未满足要求,正在等待 线程是程序执行流的 ...
- 并发与并行概念认知(并发性不是并行性(并行性更好))
并发和并行是程序重要概念,也是一种解决问题的思路.在golang创始人rob pike的演讲Concurrency is not Parallelism (it's better)举例花枝鼠烧书的例子 ...
- python基础代码事例-学习笔记:python3,代码。小例子习作(2017)
http://www.cnblogs.com/qq21270/p/7634025.html 学习笔记:python3,一些基本语句(一些基础语法的代码,被挪到这里了) 日期和时间操作 http://b ...
- 操作系统中并发与并行的几个例子
何谓并行? 何谓并发? 在单处理机系统中,下述并行和并发现象哪些可能发生,哪些不会发生? (1) 进程与进程之间的并行: (2) 进程与进程之间的并发: (3) 处理机与设备之间的并行: (4) 处理 ...
- python非阻塞输入_Python 命令行非阻塞输入的小例子
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- Python之路 34:并发与并行、锁(GIL、同步锁、死锁与递归锁)、信号量、线程队列、生消模型、进程(基础使用、进程通信、进程池、回调函数)、协程
内容: 同步锁 死锁.递归锁 信号量和同步对象(暂时了解即可) 队列------生产者和消费者模型 进程(基础使用.进程通信.进程池.回调函数) 协程 一.并发并行与同步异步的概念 1.1.并发和并行 ...
最新文章
- python 苹果李子橙_Python模块知识6:OS、SYS模块
- 【django】配置项目日志【5】
- flink 运行一段时间 内存溢出_Flink之运行时环境
- LeetCode 56. 合并区间(优先队列)
- 源码分析参考:Scheduler
- 奇淫技巧之整形数组偏移量
- wxpython播放视频_使用wxpython显示网络摄像头视频闪烁
- 大鱼吃豆子游戏java_java swing开发简单的大鱼吃豆子小游戏,可用于毕业设计(附详细设计文档)...
- java读取scv文件
- AlphaGo Zero 强化学习算法原理深度分析
- 如何打开计算机控制面板,控制面板怎么打开 快速打开控制面板方法大全-电脑教程...
- 【渝粤教育】国家开放大学2018年春季 0034-21T现代管理原理 参考试题
- mysql的strict_linux关闭mysql strict mode的方法介绍
- 互联网大佬打脸啪啪啪啪史
- C++读书笔记:多态
- 域权限维持——黄金票据和白金票据
- 计算机无法加载加密文件,win10电脑加密,win10加密文件无法解密
- 数学建模常用算法汇总及python,MATLAB实现(五) —— 拟合
- 还用户一片净土:广告自动拦截功能明年登陆Chrome
- 500kV某变电站红外测温 检测技术方案