前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 线程池(并行编程 22)

python 线程池(并行编程 22)

作者头像
用户5760343
发布2019-07-30 10:31:11
5800
发布2019-07-30 10:31:11
举报
文章被收录于专栏:sktjsktj

import threadpool

调用sum函数求和

def sum(start, end): sum = 0 for i in range(start, end + 1): sum += i return sum

定义结果统一回调

totalsum = 0

def onresult(req, sum): global totalsum totalsum += sum

并发10条线程并求和

def threadpoolSum(): # 创建需求列表 reqlist = [] for i in range(10): reqlist.append(([i * 10 ** 7 + 1, 10 ** 7 * (i + 1)], None)) reqs = threadpool.makeRequests(sum, reqlist, callback=onresult) # 创建线程为10的线程池 mypool = threadpool.ThreadPool(10) for item in reqs: mypool.putRequest(item)

代码语言:javascript
复制
# 阻塞等待
mypool.wait()
# 打印结果
print(totalsum)

程序主入口

if name == 'main': threadpoolSum()

-----------------------------------------------进程池 import multiprocessing

调用sum函数求和

def sum(start, end): sum = 0 for i in range(start, end + 1): sum += i return sum

结果统一回调并处理

totalsum = 0 def onresult(sum): global totalsum totalsum += sum

def MultiprocessPoolSum(): # 创建10条进程池 mypool = multiprocessing.Pool(10)

代码语言:javascript
复制
for i in range(10):
    mypool.apply_async(sum, (i * 10 ** 7 + 1, 10 ** 7 * (i + 1)), callback=onresult)
mypool.close()
mypool.join()
print(totalsum)

程序主入口

if name == 'main': MultiprocessPoolSum()

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 调用sum函数求和
  • 定义结果统一回调
  • 并发10条线程并求和
  • 程序主入口
  • 调用sum函数求和
  • 结果统一回调并处理
  • 程序主入口
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档