ThreadPoolExecutor传递单个参数:
from concurrent.futures import ThreadPoolExecutor
# 采取线程池机制,限制线程的最大数量
maxThreadLimit = 1000
threadPool = ThreadPoolExecutor(max_workers=maxThreadLimit)
def test(a):
print(a)
ls = [1, 2, 3, 4, 5, 6]
# ThreadPoolExecutor单个参数传值
[threadPool.submit(test, i) for i in ls]
ThreadPoolExecutor传递多个参数:
from concurrent.futures import ThreadPoolExecutor
# 采取线程池机制,限制线程的最大数量
maxThreadLimit = 1000
threadPool = ThreadPoolExecutor(max_workers=maxThreadLimit)
def test(k, v):
print(k, v)
dic = {'1': 1, '2': 2, '3': 3, '4': 4, '5': 5}
# ThreadPoolExecutor多个参数传值,但多线程可能会导致输出顺序乱掉
[threadPool.submit(lambda args: test(*args), (k, v)) for k, v in dic.items()]
文章展示了如何在Python中使用ThreadPoolExecutor进行线程池操作,包括限制最大线程数以及如何传递单个参数和多个参数。在处理单个参数时,直接提交任务;而在传递多个参数时,使用lambda函数拆解参数并保证任务执行。需要注意的是,多线程环境下输出顺序可能不可预测。

1150

被折叠的 条评论
为什么被折叠?



