{site_name}

{site_name}

🌜 搜索

Python ThreadPoolExecutor 是一个线程池实现,它允许您异步执行多个并发任务

Python 𝄐 0
python threadingpool,python3 threadpool,python thread.exit,python thread condition,python thread process,python threadpoolexecutor map
Python ThreadPoolExecutor 是一个线程池实现,它允许您异步执行多个并发任务。它通过在后台创建一组线程来实现它,以便您可以同时运行多个 Python 函数或方法。

以下是一个使用 ThreadPoolExecutor 的简单示例,它将使用三个线程异步执行两个函数:

python
import concurrent.futures
import time

def func1():
print("Function 1 started")
time.sleep(2)
print("Function 1 ended")

def func2():
print("Function 2 started")
time.sleep(1)
print("Function 2 ended")

if __name__ == '__main__':
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
future1 = executor.submit(func1)
future2 = executor.submit(func2)

# Wait for all tasks to complete before continuing
concurrent.futures.wait([future1, future2])


在此示例中,我们首先导入了 concurrent.futures 模块和 time 模块。然后定义了两个函数 func1() 和 func2(),它们分别打印出一些信息并模拟一些工作时间。

在 if __name__ == '__main__': 块中,我们创建了一个 ThreadPoolExecutor 对象,并指定最大工作线程数为 3。然后,我们使用 executor.submit() 方法提交了两个函数,它会返回一个 Future 对象,代表着提交的函数的未来结果。

最后,我们调用了 concurrent.futures.wait() 方法来等待所有任务完成。这将阻塞主线程,直到所有任务都已完成。

当您运行此示例时,您将看到输出类似于以下内容:


Function 1 started
Function 2 started
Function 2 ended
Function 1 ended


可以看到,两个函数异步执行,并且在完成时按顺序打印输出信息。由于我们设置了三个最大工作线程数,所以它们会在三个线程池中轮流执行。