使用協程的概念,達到以下目的, 輸入a,b,c,d四個整數,列印(a+b)*(c+d)的值。假設a+b的過程是耗時1秒io操作。
"""
使用協程的概念,達到以下目的, 輸入a,b,c,d四個整數,列印(a+b)*(c+d)的值
"""import asyncio, os
from threading import current_thread
# 定義負責計算兩個數字的和的協程
async def
sum(a, b):
print("【%s-%s】coroutine start to do: %s + %s" % (os.getpid(), current_thread().getname(), a, b))
await asyncio.sleep(1) # 模擬耗時1秒的io操作,自動切換協程
r = int(a) + int(b)
print("【%s-%s】coroutine end for : %s + %s, result is %s" % (os.getpid(), current_thread().getname(), a, b, r))
return r
# 定義主函式
defmain
(a, b, c, d):
loop = asyncio.get_event_loop()
task = asyncio.gather(
sum(a, b),
sum(c, d)
)loop.run_until_complete(task)
r1, r2 = task.result()
r = r1 * r2
print("【%s-%s】%s * %s = %s" % (os.getpid(), current_thread().getname(), r1, r2, r))
loop.close()
if __name__ == '__main__':
main(1, 2, 3, 4)
列印過程和結果:
【23729-mainthread】coroutine start
todo: 1 + 2
【23729-mainthread】coroutine start
todo: 3 + 4
【23729-mainthread】coroutine end
for : 1 + 2, result is
3【23729-mainthread】coroutine end
for : 3 + 4, result is
7【23729-mainthread】3 * 7 = 21
攜程python面試題 python常見面試題
哈哈,終於知道為什麼寫部落格的好處,很多知識看完了感覺是明白,當別人問道你的時候,又表達的模模糊糊說不太清楚,今天來總結一下這些問題吧,希望對自己和別人有一些幫助。python 1,python中的記憶體機制 2,python中的元類是什麼,和為什麼要有元類 簡單理解將函式物件扔進來處理後返回乙個新...
Python面試題(一)
def extendlist val,list return list list1 extendlist 10 list2 extendlist 123,list3 extendlist a print list1 print list2 print list3 執行結果和解析過程 10,a 123...
python面試題(一)
整理了一些python面試可能遇到的題,提供給大家,希望能對大家有用!1.下面的 會輸出什麼?def extend list val,list return list list1 extend list 10 list2 extend list 123,list3 extend list a pri...