您的位置:首页 > 编程语言 > Python开发

python高效编程技巧14(如何使用线程池)

2017-10-17 20:18 686 查看
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from concurrent.futures import ThreadPoolExecutor

'''
如何使用线程池:
使用标准库中的concurrent.futures下的ThreadPoolExecutor对象
的submit和map方法可以用来启动线程池中线程执行任务
当线程池中的每个线程都在运行,又有一个新的线程来调用的时候,则这个多的线程会等待线程池中有空余的线程时才会执行
'''
# 1、创建一个线程池,线程池中线程的大小为3
executor = ThreadPoolExecutor(3)

# 2、定义一个函数
def f(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: