
使用多线程处理列表中字典参数执行函数
给定一个包含字典参数的列表,我们需要使用多线程来执行一个带有这些参数的函数。目标是根据指定的线程数(例如 2 个),并行地执行同一函数的多个实例。
我们可以使用 threadpoolexecutor 线程池来实现这个目标。它允许我们创建具有指定线程数限制的线程池,这些线程可以同时执行任务。
以下是实现代码:
免费 盛世企业网站管理系统(SnSee)系统完全免费使用,无任何功能模块使用限制,在使用过程中如遇到相关问题可以去官方论坛参与讨论。开源 系统Web代码完全开源,在您使用过程中可以根据自已实际情况加以调整或修改,完全可以满足您的需求。强大且灵活 独创的多语言功能,可以直接在后台自由设定语言版本,其语言版本不限数量,可根据自已需要进行任意设置;系统各模块可在后台自由设置及开启;强大且适用的后台管理支
0
from concurrent.futures import ThreadPoolExecutor
import threading
def dosome(ip, password, user_name):
tname = threading.current_thread().getName()
time.sleep(1)
print(f'{tname} {ip}')
tpe = ThreadPoolExecutor(max_workers=2)
my_list = [
{'ip': '192.168.1.2', 'password': '123456', 'user_name': '654321'},
{'ip': '192.168.1.3', 'password': '123456', 'user_name': '654321'},
{'ip': '192.168.1.4', 'password': '123456', 'user_name': '654321'},
{'ip': '192.168.1.5', 'password': '123456', 'user_name': '654321'},
{'ip': '192.168.1.6', 'password': '123456', 'user_name': '654321'}
]
for m in my_list:
tpe.submit(dosome, **m)在上面的代码中,我们使用 threadpoolexecutor 创建了一个具有 2 个工作线程的线程池。然后,我们遍历 my_list 中的每个字典参数,并将它们作为关键字参数传递给 dosome 函数。
submit 方法将 dosome 函数作为第一个参数,后跟要作为关键字参数传递给它的字典参数。这将触发线程池使用一个可用的线程来执行 dosome 函数。当一个线程完成时,另一个线程将从线程池中选择一个新的任务来执行。
这种方法将确保 dosome 函数的多个实例同时运行,并且线程数限制在指定的 2 个内。
以上就是如何使用多线程并行执行函数,并限制线程数?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号