# 首先導包 from concurrent.futures import ThreadPoolExecutor # 建立線程池 executor = ThreadPoolExecutor(10) # 測試方法 def test_function(num1, num2): print(num1, num2) return num1 + num2 # 第一個參數爲具體的方法,後面爲方法的參數 future = executor.submit(test_function, 1, 2) # future的result()方法能夠獲取到函數的執行結果 print(future.result())
ThreadPoolExecutor(pool_count)
: pool_count表明建立線程的數量,會返回一個該線程池的執行者對象,這個對象的submit()
方法和map()
方法,可以使用線程池中的線程來執行咱們指定的方法,而且返回一個Future
對象。Future
對象的result()
方法,能夠獲取咱們方法執行的結果。若是方法一直沒有返回或執行完畢,則result()
方法會進入阻塞狀態,直到咱們的方法返回或執行完畢。python
from concurrent.futures import ThreadPoolExecutor executor = ThreadPoolExecutor(10) def test_function(num1, num2): print(num1, num2) return num1 + num2 result_iterators = executor.map(test_function, [1, 2], [5, 5]) for result in result_iterators: print(result)
"""函數
executor.map(function, 參數1_list, 參數2_list, 參數n_list)
參數1_list: 表明方法第一個參數的列表
參數2_list: 表明方法第二個參數的列表 測試