python 線程池 futures使用

python 線程池

  • 例一
# 首先導包 
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: 表明方法第二個參數的列表 測試

相關文章
相關標籤/搜索