您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python如何進行多線程操作”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python如何進行多線程操作”吧!
引入
from concurrent.futures import ThreadPoolExecutor
一個簡單的線程池使用案例
from concurrent.futures import ThreadPoolExecutor
import time
pool = ThreadPoolExecutor(10, 'Python')
def fun():
time.sleep(1)
print(1, end='')
if __name__ == '__main__':
# 列表推導(dǎo)式
[pool.submit(fun) for i in range(20) if True]
from concurrent.futures import ThreadPoolExecutor
import time
pool = ThreadPoolExecutor(10, 'Python')
def fun(arg1,arg2):
time.sleep(1)
print(arg1, end=' ')
print(arg2, end=' ')
if __name__ == '__main__':
# 列表推導(dǎo)式
[pool.submit(fun,i,i) for i in range(20) if True]
# 單個線程的執(zhí)行
task = pool.submit(fun,'Hello','world')
# 判斷任務(wù)執(zhí)行狀態(tài)
print(f'task status {task.done()}')
time.sleep(4)
print(f'task status {task.done()}')
# 獲取結(jié)果的函數(shù)是阻塞的,所以他會等線程結(jié)束之后才會輸出
print(task.result())
阻塞等待
print(task.result())
批量獲取結(jié)果
for future in as_completed(all_task):
data = future.result()
阻塞主線程,等待執(zhí)行結(jié)束再執(zhí)行下一個業(yè)務(wù)
# 等待線程全部執(zhí)行完畢
wait(pool.submit(fun,1,2),return_when=ALL_COMPLETED)
print('')
感謝各位的閱讀,以上就是“Python如何進行多線程操作”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python如何進行多線程操作這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。