Python中如何实现线程池队列

2023-04-11 00:00:00 线程 队列 如何实现

在Python中,可以使用标准模块concurrent.futures来实现线程池队列。具体步骤如下:

  1. 导入concurrent.futures模块。
import concurrent.futures
  1. 创建一个线程池对象。
pool = concurrent.futures.ThreadPoolExecutor(max_workers=5)

其中max_workers参数指定线程池中的最大线程数。

  1. 往线程池中提交任务,每个任务由一个函数和一组参数组成。
result = pool.submit(function_name, *args)

其中function_name是任务的函数名,args是函数的参数列表。

  1. 可以通过result.result()来获取任务的返回值。

  2. 最后记得关闭线程池。

pool.shutdown()

以下是一个完整的范例,其中将字符串“pidancode.com”和“皮蛋编程”传递给函数reverse_string()来翻转字符串:

import concurrent.futures

def reverse_string(string):
    return string[::-1]

if __name__ == '__main__':
    with concurrent.futures.ThreadPoolExecutor(max_workers=2) as pool:
        futures = [pool.submit(reverse_string, 'pidancode.com'), 
                   pool.submit(reverse_string, '皮蛋编程')]
        for future in concurrent.futures.as_completed(futures):
            print(future.result())

输出结果为:

moc.edocnadip
编程蛋皮

相关文章