用户:函数Chara查看:6 回复:4 评论:6 创建时间:2020-02-09T19:33:03
函数驾到!!!!



不玩了,可能你们都想学并发编程。今天俺就教你们!



(呵呵)
我们用“洗衣服”案例:
# 创建同步函数,洗衣房
async def washroom1():
pass
async,同步,创建同步函数。
import time
import asyncio
# ...
async def washroom1():
async def wash1():
#洗衣机1
await asyncio.sleep(3)
print("OK")
async def wash2():
#洗衣机2
await asyncio.sleep(4)
print("OK")
async def wash1():
#洗衣机3
await asyncio.sleep(5)
print("OK")
使用time库是为了计时。
asyncio是主要的。
这三个洗衣机(三个线程)。放在同一个洗衣房(进程)里
[敲黑板]重点来了!
重点
task = [
wash1(),
wash2(),
wash3()
]
loop = asyncio.get_event_loop() #创建事件循环
loop.run_until_complete(async.wait(task)) #启动多线程
pass
我们再定义一个使用asyncio之前的函数:
def washroom2():
def wash1():
#洗衣机1
time.sleep(3)
print("OK")
def wash2():
#洗衣机2
time.sleep(4)
print("OK")
def wash1():
#洗衣机3
time.sleep(5)
print("OK")
wash1()
wash2()
wash3()
再定义一个计时函数:
def tick(method):
start = time.time()
method()
end = time.time()
return start - end
(注:关于回调函数,我会另发帖子,此处不买一送一)
最后是主函数:
def main():
print(tick(washroom1))
print(tick(washroom2))
(所以我叫“函数”)
最终结果大家可以试试,我是:
1:OK
2:OK
3:OK
4:5.10429214312134
5:OK
6:OK
7:OK
8:12.015687465667725
最后,我发现一件事:
我每次用Python评论时,都会有bug
而我每次发帖时,都没错。
有帮助的,给个顶