同步**
def
test1()
:for i in
range(10
):time.sleep(3)
print
(i,"test1"
)def
test2()
:for i in
range(15
):time.sleep(2)
print
(i,"test2"
)start_time=time.time(
)test1(
)test2(
)end_time=time.time(
)print
(end_time-start_time)
執行結果:
0 test1
1 test1
2 test1
3 test1
4 test1
5 test1
6 test1
7 test1
8 test1
9 test1
0 test2
1 test2
2 test2
3 test2
4 test2
5 test2
6 test2
7 test2
8 test2
9 test2
10 test2
11 test2
12 test2
13 test2
14 test2
60.015082120895386
非同步**:
import asyncio
import time
import threading
async
deftest1()
:for i in
range(10
):await asyncio.sleep(3)
print
(i,"test1"
)async
deftest2()
:for i in
range(15
):await asyncio.sleep(2)
print
(i,"test2"
)loop = asyncio.get_event_loop(
)# 1. 將非同步函式加入事件佇列
tasks =
[ test1(),
test2()]
# 2. 執行事件佇列, 直到最晚的乙個事件被處理完畢後結束
start_time=time.time(
)loop.run_until_complete(asyncio.wait(tasks)
)loop.close(
)end_time=time.time(
)print
(end_time-start_time)
執行結果:
0 test2
0 test1
1 test2
1 test1
2 test2
3 test2
2 test1
4 test2
3 test1
5 test2
6 test2
4 test1
7 test2
5 test1
8 test2
9 test2
6 test1
10 test2
7 test1
11 test2
12 test2
8 test1
13 test2
9 test1
14 test2
30.00783109664917
可以看出,非同步**比同步**的執行速度快了30秒。
對python async與await的理解
async await關鍵字是出現在python3.4以後。網上已經有很多文章對async await這兩個關鍵字都有講解,包括如何由python2的yield from發展到async await這兩個關鍵字,以及一些 實現都有。但是對於像我這樣初次接觸的人來說,光看 分析也不一定能理解,我也是在...
Socket非同步程式設計
以 socket 通訊中的非同步方法為例 public static manualresetevent connectdone new manualresetevent false public static void connectcallback iasyncresult ar sclient....
C 非同步程式設計
同步方法和非同步方法的區別 同步方法呼叫在程式繼續執行之前需要等待同步方法執行完畢返回結果 非同步方法則在被呼叫之後立即返回以便程式在被呼叫方法完成其任務的同時執行其它操作 非同步程式設計概覽 net framework 允許您非同步呼叫任何方法。定義與您需要呼叫的方法具有相同簽名的委託 公共語言執...