博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python---协程---重写多线程
阅读量:4455 次
发布时间:2019-06-07

本文共 2139 字,大约阅读时间需要 7 分钟。

一、

# 用协程的方式,修改播放电影和音乐的练习题

 

# 用协程的方式完成播放 movie_list = ["斗破.mp4", "复仇者联盟.avi", "钢铁雨.rmvb", "xxx.mp4"] music_list = ["周杰伦.mp3", "五月天.mp3"] movie_format = ['mp4', 'avi'] music_format = ['mp3'] import time import asyncio #async  await @asyncio.coroutine def play(playlist):     for i in playlist:         if i.split(".")[1] in movie_format:             print("now playing movie named {}".format(i))             yield time.sleep(1)         elif i.split(".")[1] in music_format:             print("now playing music named {}".format(i))             yield time.sleep(2)         else:             print("NO SUPPORTED") loop = asyncio.get_event_loop() task = [play(movie_list), play(music_list)] loop.run_until_complete(asyncio.wait(task)) loop.close() 二、
# 用协程的方式完成播放 movie_list = ["斗破.mp4", "复仇者联盟.avi", "钢铁雨.rmvb", "xxx.mp4"] music_list = ["周杰伦.mp3", "五月天.mp3"] movie_format = ['mp4', 'avi'] music_format = ['mp3'] import time import asyncio #async  await #@asyncio.coroutine async def play(playlist):     for i in playlist:         if i.split(".")[1] in movie_format:             print("now playing movie named {}".format(i))             await asyncio.sleep(1)         elif i.split(".")[1] in music_format:             print("now playing music named {}".format(i))             await asyncio.sleep(2)         else:             print("NO SUPPORTED") loop = asyncio.get_event_loop() task = [play(movie_list), play(music_list)] loop.run_until_complete(asyncio.wait(task)) loop.close() 三、####   使用协程的概念,达到以下目的,输入a、b、c、d四个整数,打印出(a+b)*(c+d)的值,假设a+b和c+d是一个耗时一秒的IO操作
#  encoding:utf-8 #  使用协程的概念,达到以下目的,输入a、b、c、d四个整数,打印出(a+b)*(c+d)的值,假设a+b和c+d是一个耗时一秒的IO操作 import asyncio import  threading async  def sum(a, b):     print("now begin cacl, current thread is {}".format(threading.currentThread()))     r = int(a) + int(b)     await  asyncio.sleep(1)     print("现在计算完了,current thread is {}".format(threading.currentThread()))     return r loop = asyncio.get_event_loop() task = asyncio.gather(sum(1,2), sum(3,4)) loop.run_until_complete(task) r1,r2 = task.result() print(int(r1)*int(r2)) loop.close() 四、
 

转载于:https://www.cnblogs.com/niaocaizhou/p/11075659.html

你可能感兴趣的文章
Nodejs学习笔记(2) 阻塞/非阻塞实例 与 Nodejs事件
查看>>
什么是FreeMaker
查看>>
设计模式学习笔记(总结篇:模式分类)
查看>>
TCP的三次握手/建立连接
查看>>
Python 教程阅读笔记(一):使用解释器
查看>>
运算符重载
查看>>
SDWebImage 新版接口使用方法
查看>>
DataTable导出为word,excel,html,csv,pdf,.txt
查看>>
android ListView详解
查看>>
软件工程 第一次作业
查看>>
Content Server HA搭建
查看>>
vue-textarea 自适应高度
查看>>
(2)数据结构——线性表(链表)实现
查看>>
[leetCode]Linked List Cycle I+II
查看>>
leetcode中的python学习
查看>>
sqlserver打开对象资源管理器管理的帮助文档的快捷键
查看>>
JBOSSAS 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)
查看>>
Zookeeper zkui-zookeeper图形化管理工具
查看>>
java运行时内存分类
查看>>
为什么说 Git 比 SVN 更好
查看>>