ThreadPoolExecutor實現異步多線程

import time
from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(max_workers=20)

list = []

#  子線程要執行的函數,通常這裏的函數比較耗時,因此要用異步。列表要把線程完成的標誌加入到全局列表中。
def a(c):
    time.sleep(c)
    print('我是一個線程')
    list.append('1')

#  啓動20個線程,注意這裏,實現了異步,啓動線程後,主線程繼續往下運行
for x in range(20):
    #  這裏,a()的參數傳遞方式以下
    executor.submit(a,(5))

print('我是主線程')
#  經過查看列表中元素個數來斷定線程完成狀況
while True:
    if len(list)== 20:
        break
print('ok')
相關文章
相關標籤/搜索