1. 程式人生 > >python 簡單實現執行緒 執行緒池實現多執行緒 指定多執行緒個數

python 簡單實現執行緒 執行緒池實現多執行緒 指定多執行緒個數

from multiprocessing.pool import ThreadPool
import time
# 指定10個執行緒實現
pool = ThreadPool(10)

# 要去執行的函式
def login(a):
    print(a)
    time.sleep(2)

# 要傳入的引數
users = ['a', 'b', 3, 4, 5, 6, 7, 8, 9, 10]
pool.map(lambda u: login(u), users)
pool.join()

# 請求第三方介面的demo
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from multiprocessing.pool import ThreadPool import time from image.describe_images import DescribeImagesClass from util.get_regions import get_region_id_list def main(region_id): result = {} start = time.time() pool = ThreadPool(18) # 第三方放介面 region_id_list = get_region_id_list() if
region_id_list: desc_images_obj = DescribeImagesClass(region_id=region_id) # desc_images_obj.get_image_id_list(region) 第三方介面 pool.map(lambda region: result.update({region: desc_images_obj.get_image_id_list(region)}), region_id_list) end = time.time() print(result) # 0.6
print(end-start) 第二種實現 def main1(region_id): result = {} start = time.time() pool = ThreadPool(1) region_id_list = get_region_id_list() print(region_id_list) print(len(region_id_list)) if region_id_list: desc_images_obj = DescribeImagesClass(region_id=region_id) for region in region_id_list: # 執行非同步任務 image_id_list = pool.apply_async(desc_images_obj.get_image_id_list, args=(region,)) # 獲取 結果 a = image_id_list.get() result.update({region: a}) end = time.time() print(result) print(len(result.keys())) # 4.5s print(end-start)