作為一個高階程序員,多線程是必須掌握的知識。在python中有一個線程池模塊可以讓開發(fā)者更加簡單快速的進行線程池的使用,接下來這篇文章就根據(jù)此來介紹python怎么進行多線程操作。
1、線程池模塊
引入
from concurrent.futures import ThreadPoolExecutor
2、使用線程池
一個簡單的線程池使用案例
from concurrent.futures import ThreadPoolExecutor
import time
pool = ThreadPoolExecutor(10, 'Python')
def fun():
time.sleep(1)
print(1, end='')
if __name__ == '__main__':
# 列表推導式
[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__':
# 列表推導式
[pool.submit(fun,i,i) for i in range(20) if True]
# 單個線程的執(zhí)行
task = pool.submit(fun,'Hello','world')
# 判斷任務執(zhí)行狀態(tài)
print(f'task status {task.done()}')
time.sleep(4)
print(f'task status {task.done()}')
# 獲取結果的函數(shù)是阻塞的,所以他會等線程結束之后才會輸出
print(task.result())
3、獲取結果
阻塞等待
print(task.result())
批量獲取結果
for future in as_completed(all_task):
data = future.result()
阻塞主線程,等待執(zhí)行結束再執(zhí)行下一個業(yè)務
# 等待線程全部執(zhí)行完畢
wait(pool.submit(fun,1,2),return_when=ALL_COMPLETED)
print('')
以上就是python怎么進行多線程操作的詳細內(nèi)容,更多Python高級語法的使用介紹請關注W3Cschool其它相關文章!