当前位置: 首页 > 知识库问答 >
问题:

python3 - 这里的job.get()是什么含义?

章晋鹏
2023-06-06

代码来源
https://medium.com/geekculture/python-multiprocessing-with-ou...

import multiprocessing as mp

def worker_function(item):
    """
    do some work, write results to output
    """
    res = f'item: {item} - result: {item ** 2}'
    print(res)
    with open('output_no_queue.txt', 'a') as f:
        f.write(str(res) + '\n')


if __name__ == '__main__':
    pool = mp.Pool(16)
    jobs = []
    for item in range(10000):
        job = pool.apply_async(worker_function, (item, ))
        jobs.append(job)

    for job in jobs:
        job.get()

    pool.close()
    pool.join()

这里的job.get()是表达什么呢?jobs是个list,每个job也不是queue,list的元素没有get方法,如何理解呢?

共有2个答案

邓欣可
2023-06-06

job 是 apply_async 的返回值,是 AsyncResult 类的对象。这个类的对象的 get:

Return the result when it arrives. If timeout is not None and the result does not arrive within timeout seconds then multiprocessing.TimeoutError is raised. If the remote call raised an exception then that exception will be reraised by get().
帅令雪
2023-06-06
job = pool.apply_async(worker_function, (item, ))

job 的类型是个 pool.apply_async 的返回值类型,也即 AsyncResult 对象。

所以你就看它的 get 方法是干啥的呗。

https://docs.python.org/zh-cn/3/library/multiprocessing.html#...
 类似资料:
  • 我正在尝试创建我的第一个Spring Boot应用程序。我在这里使用的是: 然而,eclipse抱怨说: 没有为此构建指定目标。您必须以

  • 请看这里 https://www.runoob.com/python/python-func-property.html 这里的class是什么含义? property是一个函数吧?property不是一个类吧? 有的网页这样写 https://www.perfcode.com/python-built-in-functions/python-pro... 我疑惑,class property([

  • 问题内容: 此代码来自Python的文档。我有点困惑。 以下是我最初的想法: 为什么这段代码会创建一个无限循环,而第一个却没有呢? 问题答案: 这是陷阱之一!python,可以逃脱初学者。 这是这里的魔术酱。 观察: 现在没有: 这里要注意的主要事情是返回现有列表的a,因此您要遍历未修改的副本。 您可以使用以下命令检查是否引用了相同的列表: 在第一种情况下: 在第二种情况下: 值得注意的是,它称为

  • 我正在学习Scala语言,我不明白这段代码: 当是时,是从的范围是什么意思?

  • 我几天前听说了Docker的事,想过去看看。 但事实上,我不知道这个“容器”的用途是什么? 什么是容器? 它能取代一个专门用于开发的虚拟机吗? 简单地说,在公司中使用Docker的目的是什么?主要的优势?

  • 我并没有手动设置什么,这些不同颜色的包有什么特殊含义吗?