python高效程式設計技巧14(如何使用執行緒池)

2021-08-09 11:11:36 字數 908 閱讀 5484

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from concurrent.futures import threadpoolexecutor

'''如何使用執行緒池:

使用標準庫中的concurrent.futures下的threadpoolexecutor物件

的submit和map方法可以用來啟動執行緒池中線程執行任務

當執行緒池中的每個執行緒都在執行,又有乙個新的執行緒來呼叫的時候,則這個多的執行緒會等待執行緒池中有空餘的執行緒時才會執行

'''# 1、建立乙個執行緒池,執行緒池中線程的大小為3

executor = threadpoolexecutor(3)

# 2、定義乙個函式

deff

(a, b):

# print ("f", a, b)

# print a ** b

return a ** b

# 3、submit方法:從執行緒池中取出乙個執行緒,去執行f函式,其中2,3是f的引數,不可用使用executor.submit(f(2,3))這種方式。否則得到的結果報錯。執行完成後,執行緒會歸還到執行緒池中去

future = executor.submit(f, 2, 3)

# executor的submit的方法會返回結果,可以呼叫該結果的result()方法來得到值

print future.result()

# 4、map方法:類似高階函式map方法,意思為分別依次取第乙個列表和第二個類表中的每乙個值作為引數,去呼叫f函式

future = executor.map(f, [2, 3, 5], [4, 5, 6])

for result in future:

print result

Python高效程式設計技巧

關鍵字 python 高效 程式設計 開源 原文 我已經使用python程式設計有多年了,即使今天我仍然驚奇於這種語言所能讓 表現出的整潔和對dry程式設計原則的適用。這些年來的經歷讓我學到了很多的小技巧和知識,大多數是通過閱讀很流行的開源軟體,如django,flask,requests中獲得的。...

python高效程式設計技巧

列表 ldata range 2,2 構造列表 a filter lambda x x 0,ldata filter函式 b x for x in ldata if x 0 列表解析 字典from random import randint ddata 構造字典 c 字典解析 集合sdata set...

Python高效程式設計技巧

我已經使用python程式設計有多年了,即使今天我仍然驚奇於這種語言所能讓 表現出的整潔和對dry程式設計原則的適用。這些年來的經歷讓我學到了很多的小技巧和知識,大多數是通過閱讀很流行的開源軟體,如django,flask,requests中獲得的。下面我挑選出的這幾個技巧常常會被人們忽略,但它們在...