首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python简单的ProcessPoolExecutor示例不起作用

Python简单的ProcessPoolExecutor示例不起作用
EN

Stack Overflow用户
提问于 2016-09-15 20:59:41
回答 1查看 892关注 0票数 0

我正尝试在Python3中使用多线程,但我不明白为什么我的示例不能工作。它应该只打印数字,并作为确认再次打印数字。但它遇到了许多错误。

代码语言:javascript
复制
from concurrent import futures

def print_me(num):
    print('Zahl: ' + str(num))
    return num


def say_bye(job):
    num = job.result()
    print(str(num) + ' is out!')


def test_multi():
    num_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
    with futures.ProcessPoolExecutor(max_workers=4) as executor:
        for num in num_list:
            job = executor.submit(print_me, num)
            job.add_done_callback(say_bye(job))

test_multi()

理论上,而不是:

代码语言:javascript
复制
for num in num_list:
    job = executor.submit(print_me, num)
    job.add_done_callback(say_bye(job))`

我可以用这个,或者?

代码语言:javascript
复制
executor.map(print_me, num_list)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-19 22:53:07

要让代码运行,我只需要添加:

代码语言:javascript
复制
if __name__ == "__main__":
    test_multi()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39511695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档