python3 Async Await入門指南

2021-09-13 15:16:13 字數 1030 閱讀 8758

有乙個任務,多次執行乙個函式,這個函式是阻塞的,阻塞原因是比如獲取網路資源,這個時候該怎麼辦,一般來講多執行緒是個不錯的選擇,python3.5以後提供了async可以讓單執行緒達到相同效果。示例如下:

import threading

import asyncio

async def hello():

print('hello world! (%s)' % threading.currentthread())

await asyncio.sleep(10)

print('hello again! (%s)' % threading.currentthread())

loop = asyncio.get_event_loop()

tasks = [hello(), hello()]

loop.run_until_complete(asyncio.wait(tasks))

loop.close()

值得注意的是這個非同步的數量可以非常的龐大,上百萬都不會有什麼問題,我們用下面的**進行測試,

import threading

import asyncio

async def hello():

print('hello world! (%s)' % threading.currentthread())

await asyncio.sleep(1)

print('hello again! (%s)' % threading.currentthread())

try:

loop = asyncio.get_event_loop()

tasks = [hello() for i in range(1000*1000*1)]

loop.run_until_complete(asyncio.wait(tasks))

# loop.close()

except valueerror:

print('async error')

python3 切片 python3 切片

取乙個list或tuple的部分元素是非常常見的操作。比如,乙個list如下 l michael sarah tracy bob jack 取前3個元素,應該怎麼做?笨辦法 l 0 l 1 l 2 michael sarah tracy 之所以是笨辦法是因為擴充套件一下,取前n個元素就沒轍了。取前n...

python3安裝 Python3的安裝

1.anaconda安裝 2.安裝包安裝 3.linux下的命令列安裝 centos red hat 1 sudo yum install y sudo yum update3 sudo yum install y python35u python35u libs python35u devel p...

python3異常例項 Python3 錯誤和異常

錯誤和異常 程式執行時有兩種可以分辨的錯誤 syntax error 和 exception 按中文來說,就是語法錯誤和異常。語法錯誤 語法錯誤也就是解析錯誤,是我們最優可能遇到的錯誤。while true print hello world file line 1,in?while true pr...