1. 程式人生 > 實用技巧 >Python_執行緒池 簡單示例

Python_執行緒池 簡單示例

from concurrent.futures import ThreadPoolExecutor
import time
import random


def start():
    '''
    主方法
    '''
    # 待處理列表
    # 將此列表作為引數傳遞給執行緒池的執行器,
    # 執行緒池會根據為列表中的每項單獨分配一個執行緒,
    # 並執行預定義方法。
    lsn = range(100)
    # 執行緒池中的執行緒數
    threadCount = 3
    # 使用執行緒池對列表執行預定義方法
    with ThreadPoolExecutor(threadCount) as e:
        e.map(threadFunction, lsn)

    lre = []
    # 使用執行緒池對列表執行預定義方法,並將返回結果加入列表
    with ThreadPoolExecutor(threadCount) as e:
        lre.append(e.map(threadFunction, lsn))
        print(lre)


def threadFunction(sn):
    '''
    執行緒執行方法
    '''
    print(getTimeStamp(),sn)
    # 隨機休眠
    time.sleep(random.randint(1,10)/10)
    return sn


def getTimeStamp():
    # 時間戳 毫秒
    shm = str(int(time.time()*1000))[-3:]
    return time.strftime("%Y%m%d_%H%M%S_", time.localtime()) + shm


if __name__ == "__main__":
    start()
    threadFunction()