首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python小姿势 - 线程池

Python小姿势 - 线程池

作者头像
不吃西红柿
发布2023-05-01 10:30:10
发布2023-05-01 10:30:10
2440
举报
文章被收录于专栏:信息技术智库信息技术智库

线程池

线程池,是一个能够重复使用已经存在的线程而不是每次都创建新的线程的机制。线程池中的线程可以执行指定的任务,当一个任务执行完成之后,线程并不会死掉,而是再次回到线程池中,等待下一个任务。

使用线程池能够有效的提高系统的资源利用率,减少系统的开销。

Python中有一个模块叫threadpool,可以方便的创建线程池。

下面是一个简单的例子:

import time from threadpool import ThreadPool, makeRequests pool = ThreadPool(4) 4个线程 def sayhello(str): print "Hello ", str time.sleep(2) return str+"888" 要执行的任务 生成要执行的任务列表 args = [] for i in range(10): args.append(([i], None)) 执行任务 requests = makeRequests(sayhello, args) [pool.putRequest(req) for req in requests] 等待任务完成 pool.wait()

运行结果:

Hello 0 Hello 1 Hello 2 Hello 3 Hello 4 Hello 5 Hello 6 Hello 7 Hello 8 Hello 9

可以看到,我们在创建线程池的时候,指定了线程池的大小为4。然后我们创建了一个任务列表,将10个任务放到了任务列表中,接着我们使用makeRequests方法批量创建了这10个任务,并放到了线程池中。最后我们使用pool.wait()方法等待任务完成。

运行结果可以看到,线程池中的4个线程被重复使用,当一个任务执行完成之后,线程并不会死掉,而是再次回到线程池中,等待下一个任务。

线程池的使用能够有效的提高系统的资源利用率,减少系统的开销。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档