python多线程、多进程、协程笔记
import threading
import time
import multiprocessing
import asyncio movie_list = ['斗破.avi', '复仇者联盟.mp4', '斗罗大陆.rmvb']
music_list = ['七里香.mp3', '美人鱼.mp3', 'xxx.obi']
movie_format = ['avi', 'mp4', 'rmvb']
music_format = ['mp3'] def play(playlist):
for i in playlist:
if i.split('.')[1] in movie_format:
print('您现在正在收看:{}'.format(i))
time.sleep(2)
elif i.split('.')[1] in music_format:
print('您现在正在收听:{}'.format(i))
time.sleep(2)
else:
print('该文件格式不支持:{}'.format(i))
time.sleep(2) async def async_play(playlist):
for i in playlist:
if i.split('.')[1] in movie_format:
print('您现在正在收看:{}'.format(i))
await asyncio.sleep(2)
elif i.split('.')[1] in music_format:
print('您现在正在收听:{}'.format(i))
await asyncio.sleep(2)
else:
print('该文件格式不支持:{}'.format(i))
await asyncio.sleep(2) class MyThread(threading.Thread):
def __init__(self, playlist):
super().__init__()
self.playlist = playlist def run(self):
play(self.playlist) # 普通的多线程运行
def thread_run():
t1 = threading.Thread(target=play, args=(movie_list, ))
t2 = threading.Thread(target=play, args=(music_list, ))
t1.start()
t2.start() # 重写多线程
def class_thread_run():
t3 = MyThread(movie_list)
t4 = MyThread(music_list)
t3.start()
t4.start() # 多进程
def multi_run():
t5 = multiprocessing.Process(target=play, args=(movie_list, ))
t6 = multiprocessing.Process(target=play, args=(music_list, ))
t5.start()
t6.start() # 协程
def loop_run():
loop = asyncio.get_event_loop()
task = [async_play(movie_list), async_play(music_list)]
loop.run_until_complete(asyncio.wait(task))
loop.close() if __name__ == '__main__':
# thread_run()
# class_thread_run()
# multi_run()
loop_run()
由于python全局解释锁(Global Interpreter Lock)的存在,使得python的多线程并不能真正达到提高工作效率的目的,所以在日常工作中推荐使用多进程+协程的方式。
python多线程、多进程、协程笔记的更多相关文章
- Python自动化 【第十篇】:Python进阶-多进程/协程/事件驱动与Select\Poll\Epoll异步IO
本节内容: 多进程 协程 事件驱动与Select\Poll\Epoll异步IO 1. 多进程 启动多个进程 进程中启进程 父进程与子进程 进程间通信 不同进程间内存是不共享的,要想实现两个进程间 ...
- python中多进程+协程的使用以及为什么要用它
前面讲了为什么python里推荐用多进程而不是多线程,但是多进程也有其自己的限制:相比线程更加笨重.切换耗时更长,并且在python的多进程下,进程数量不推荐超过CPU核心数(一个进程只有一个GIL, ...
- 多线程 多进程 协程 Queue(爬虫代码)
快速理解多进程与多线程以及协程的使用场合和特点 首先我们来了解下python中的进程,线程以及协程! 从计算机硬件角度: 计算机的核心是CPU,承担了所有的计算任务.一个CPU,在一个时间切片里只能运 ...
- 也说性能测试,顺便说python的多进程+多线程、协程
最近需要一个web系统进行接口性能测试,这里顺便说一下性能测试的步骤吧,大概如下 一.分析接口频率 根据系统的复杂程度,接口的数量有多有少,应该优先对那些频率高,数据库操作频繁的接口进行性能测试,所以 ...
- python 多进程,多线程,协程
在我们实际编码中,会遇到一些并行的任务,因为单个任务无法最大限度的使用计算机资源.使用并行任务,可以提高代码效率,最大限度的发挥计算机的性能.python实现并行任务可以有多进程,多线程,协程等方式. ...
- 深入浅析python中的多进程、多线程、协程
深入浅析python中的多进程.多线程.协程 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源 ...
- python进阶(二) 多进程+协程
我们大多数的时候使用多线程,以及多进程,但是python中由于GIL全局解释器锁的原因,python的多线程并没有真的实现 实际上,python在执行多线程的时候,是通过GIL锁,进行上下文切换线程执 ...
- Cpython解释器下实现并发编程——多进程、多线程、协程、IO模型
一.背景知识 进程即正在执行的一个过程.进程是对正在运行的程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有内容都 ...
- Python并发编程二(多线程、协程、IO模型)
1.python并发编程之多线程(理论) 1.1线程概念 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程(流水线的工作需要电源,电源就相当于 ...
随机推荐
- Request.Params用法,后台接收httpget参数
使用Request.Params["id"]来获取参数是一种比较有效的途径. request.params其实是一个集合,它依次包括request.querystring.requ ...
- WebStrom编程小技巧--HTML快速创建指定id或者类名的div
打印div标签快速方法:“先打出#yz,然后Tab键补全即可获得<div id="yz"></div>同理:我们也可以先打出“.tz"然后Tab键 ...
- vue类似tab切换的效果,显示和隐藏的判断。
两者切换,动态显示对应的列表详情. 通过v-show的判断 数据驱动
- EDM数据营销之电商篇| 六大事务性邮件,环环相扣打造极致用户体验!
“以用户为中心”的时代,电商们致力于打造极致的用户体验,想尽各式新颖营销办法,但难免还是会出现营销断层,以至于和用户间无法达到完整的交互. 本次Focussend以邮件营销为例,聚焦用户从浏览到支付等 ...
- javascript中ClassName属性的详解与实例
在javascritp中,我们可以通过style属性可以控制元素的样式,从而实现行为层通过DOM的style属性去干预显示层显示的目标,但是这种方法是不好的,而且为了实现通过DOM脚本设置的样式,你不 ...
- 微信小程序开发工具下载以及安装教程
微信公众平台上登录你的微信小程序账号 登录进入小程序开发-工具-下载,再根据你的系统选择相对应的版本地址进行下载. 以管理员身份运行下载,点击下一步,如图所示: 下一步,就会出现许可证协议 ...
- CallableStatement获得存储过程多个结果集
这里使用到的数据库为MySQL package com.dz.entity; import java.sql.*; public class Pro_inoutTest { public static ...
- 八十三:redis之redis的使用场景和安装
使用场景1.登录会话存储,存储在redis中,与mamcached相比,数据不会丢失2.排行榜.计数器:比如一些秀场类的项目,经常会有一些前多少名的主播排行榜,还有一些文章阅读量.或者点赞数等3.作为 ...
- vue-router懒加载
require.ensure(dependencies:String [],callback:function(require),errorCallback:function(error),chunk ...
- 自在因梦 | 威爾伯的Fourth Turning所引發的聯想
2015-05-06 胡因梦 ...