• Python---协程---重写多线程


    一、

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

    # 用协程的方式完成播放

    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()

    四、




  • 相关阅读:
    子查询
    关联,分组练习
    共享锁(S锁)和排它锁(X锁)
    mac 搭建Vue开发环境
    移动端web开发
    负margin
    关于前端的margin
    清除的通用样式 css
    css布局
    <div class="clear"></div>
  • 原文地址:https://www.cnblogs.com/niaocaizhou/p/11075659.html
Copyright © 2020-2023  润新知