python 线程池 futures使用

简介:

python 线程池

  • 例一
# 首先导包 
from concurrent.futures import ThreadPoolExecutor 
# 创建线程池 
executor = ThreadPoolExecutor(10) 
# 测试方法 
def test_function(num1, num2): 
    print(num1, num2) 
    return num1 + num2 
# 第一个参数为具体的方法,后面为方法的参数 
future = executor.submit(test_function, 1, 2) 
# future的result()方法可以获取到函数的执行结果 
print(future.result())

ThreadPoolExecutor(pool_count): pool_count代表创建线程的数量,会返回一个该线程池的执行者对象,这个对象的submit()方法和map()方法,能够使用线程池中的线程来执行我们指定的方法,并且返回一个Future对象。Future对象的result()方法,可以获取我们方法执行的结果。如果方法一直没有返回或执行完毕,则result()方法会进入阻塞状态,直到我们的方法返回或执行完毕。

  • 例二
from concurrent.futures import ThreadPoolExecutor 
executor = ThreadPoolExecutor(10) 
def test_function(num1, num2): 
    print(num1, num2) 
    return num1 + num2
    
result_iterators = executor.map(test_function, [1, 2], [5, 5]) 
    for result in result_iterators: 
        print(result)

"""

executor.map(function, 参数1_list, 参数2_list, 参数n_list)
参数1_list: 代表方法第一个参数的列表
参数2_list: 代表方法第二个参数的列表
如:
executor.map(test_function, [1, 2], [5, 5]) 代表,执行test_function方法,第一个线程的参数为1和5,第二个线程的参数为2和5。 线程1:test_function(1, 5) 结果为1 + 5 = 6 该方法返回的是一个可迭代的对象,里面直接包含了每个方法执行的结果,不需要调用result()方法。 详情:https://docs.python.org/3/library/concurrent.futures.html
"""

结果

1 5
2 5
6
7

目录
相关文章
|
26天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
12天前
|
安全
python_threading多线程、queue安全队列
python_threading多线程、queue安全队列
18 2
|
8天前
|
并行计算 安全 测试技术
Python多线程
【4月更文挑战第13天】对比多线程与多进程:多线程适合I/O密集型任务,轻量级但受GIL限制;多进程适用于CPU密集型任务,能实现真正并行。多线程直接共享内存,多进程独立内存,各有优劣。
8 0
|
8天前
|
数据采集 安全 Java
Python的多线程,守护线程,线程安全
Python的多线程,守护线程,线程安全
|
8天前
|
并行计算 数据处理 开发者
Python并发编程:解析异步IO与多线程
本文探讨了Python中的并发编程技术,着重比较了异步IO和多线程两种常见的并发模型。通过详细分析它们的特点、优劣势以及适用场景,帮助读者更好地理解并选择适合自己项目需求的并发编程方式。
|
9天前
|
调度 Python 容器
【python】-详解进程与线程
【python】-详解进程与线程
|
11天前
|
人工智能 安全 Java
Python 多线程编程实战:threading 模块的最佳实践
Python 多线程编程实战:threading 模块的最佳实践
127 5
|
13天前
|
运维 监控 Unix
第十五章 Python多进程与多线程
第十五章 Python多进程与多线程
|
13天前
|
Java 数据库连接 数据处理
Python从入门到精通:3.1.2多线程与多进程编程
Python从入门到精通:3.1.2多线程与多进程编程
|
13天前
|
消息中间件 安全 调度
Python从入门到精通:3.1.1多线程与多进程——进程和线程的概念
Python从入门到精通:3.1.1多线程与多进程——进程和线程的概念