如何在并行进程(python)中将项目追加到列表中?

2024-04-04

这是我正在使用的更复杂代码的一个非常简单的版本。问题是我想将 method() 函数中计算的项目附加到稍后可以显示的某个列表中。但是,当运行此代码时,列表对象为空,而结果数组已满。

    import multiprocessing as mp
    global list
    list = []
    def add(thing):
        list.append(thing)
    def method():
        global list
        add(8) #doesn't work as wanted
        return 7
    def logResult(result):
        results.append(result)

    if (__name__ == '__main__'):
        results = []
        cpu = mp.cpu_count()
        pool = mp.Pool(processes=cpu)
        for x in range(0, 2000):
            pool.apply_async(method,callback=logResult)
        pool.close()
        pool.join()
        print list
        print results

Output:

    []
    [7,7,7,7,7,7,7,7,7....] and so on.

我知道 add 方法似乎多余,但 method() 函数内的简单 list.append() 也不起作用。 add 方法旨在镜像 logResult 方法()。我知道为什么它不起作用,但我不知道如何解决这个问题。如果没有并行化,程序可以按预期工作,但我的项目需要并行化,因为完成的计算比 method() 函数中的计算要繁琐得多。期望的输出是

    [8,8,8,8,8,8,8,8,8,8,8,8,...]
    [7,7,7,7,7,7,7,7,7,7,7,7,...] and so on.

提前致谢。


该列表应驻留在共享内存中,以便可以从工作子进程访问。考虑multiprocessing.Manager().list() https://docs.python.org/2/library/multiprocessing.html#multiprocessing.managers.SyncManager.list.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在并行进程(python)中将项目追加到列表中? 的相关文章

随机推荐

  • PHPExcel 和文本换行

    我知道这行代码将使单元格文本换行 objPHPExcel gt getActiveSheet gt getStyle D1 gt getAlignment gt setWrapText true D1 是所选的单元格 有没有办法让整个 Ex
  • 将 void* 转换为二维数组

    我有一个 void 我正在进入某个函数 它实际上是一个二维 int 数组 我想将它作为参数发送给需要二维数组的函数 正确施放它的最佳方法是什么 void foo void val How to cast val in order to se
  • Android Compose 中的 TextField 与键盘重叠

    我有一个TextField在列中verticalScroll 添加大量字符时 文本字段大小超出键盘范围 我看不到正在输入的内容 我尝试使用this https google github io accompanist insets lib
  • 从 Android UI 抽象 Firebase

    我面临的问题是 当我们将 Firebase 与 Activity 或 Fragment 连接时 Firebase 作为实时数据库效果很好 但是尝试与视图元素分离并为其创建一些抽象 因为例如我们想在测试时或将来替换它 变得相当困难 尤其是尝试
  • 在 Python 中读取 JSON 对象时遇到问题

    我有一个 JSON 对象 我试图使用 Python 读取它 但遇到一些问题 我有一个名为 test txt 的文件 其中包含收到的 JSON 对象 test txt 的内容如下 Sections Now Thursday 3 Februar
  • 如果不分配给变量,为什么 Powershell Array of Array 显示不同的内容

    如果 cmdlet 返回数组的数组 例如 function test results New Object System Collections ArrayList array for idx 0 idx lt 3 idx obj New
  • AFHTTPClient.m 不再出现在 AFNetworking 中?

    我正在遵循教程 http bit ly 1dbLaPh http bit ly 1dbLaPh 使用 AFNetworking 它说要创建一个从 AFHTTPClient 派生的新类 这个选项没有出现在 SubClass Of 字段中 我检
  • 何时使用“raise_for_status”与“status_code”测试

    我一直用 r requests get url if r status code 200 my passing code else anything else if this even exists 现在我正在解决另一个问题并决定允许其他错
  • 出现异常:指定的网络名称不再可用。 (0x80070040)尝试使用 ReadToEndAsync() 读取 HttpRequest Body 时

    我有一个 API post Web 方法 尝试使用 StreamReader 获取请求正文ReadToEndAsync 大多数情况下它工作正常 但是对于非常随机的请求 我收到以下异常 客户端已断开连接 有内在的例外 指定的网络名称不再可用
  • Mat-accordion 不是已知元素

    我正在开发一个 angular10 应用程序 我尝试在我的项目中使用 mat accordion 每个组件使用模块 每个组件都有自己的 module ts 文件 下面是我的模块文件代码 import NgModule from angula
  • 根据 hcharter 中给定的序列设置热图颜色范围

    在这里我尝试使用创建热图highcharter hcharter where 小于 1应该是一种颜色 粉红色 1 to 1应该是透明或白色的 并且大于 1应该是另一种颜色 紫色 目前我已经使用编写代码hchart 并使用color stop
  • 在 jquery 选择器中使用 rel 属性中的变量

    我使用 rel 属性将 div 与按钮匹配 我在相应 div 的 rel 字段中使用按钮的 id 有多个按钮 单击按钮时 我想使用 show 方法显示相应的 div 并隐藏其他 div 按钮工作正常 但 div 没有响应 我的直觉告诉我 我
  • C Win32:从 HBITMAP 保存 .bmp 图像

    我正在使用图像采集卡 需要从计算机内存中获取图像并将其保存在图像文件中 经过几天的尝试 我最终得到了以下两个函数 它创建了一个文件 Windows操作系统能够运行 bmp文件 但位图文件是黑色的 图像大小为900KB 640 480 有人知
  • Android 追加文本文件

    我试图将对话框选择器中的唤醒时间和睡眠时间记录到这样的文本文件中 但是对方法 commitToFile2 的调用不会附加文本文件 savedData txt 我知道这段代码非常非常肮脏 我是 Java 新手 所以任何其他建议将不胜感激 pa
  • 标签内运行 JavaScript?

    我有一个处理选项卡切换的 JavaScript 文件 这是来源 var tCount 0 function SwitchToTab id if id lt 0 id gt tCount id 0 for var i 0 i lt tCoun
  • 在 ASP.NET Identity 2 中通过 UserManager.Update() 更新用户

    I use ASP NET Identity 2 in an MVC 5项目 我想更新Student数据通过使用UserManager Update 方法 然而 正如我继承自ApplicationUser类 我需要映射Student to
  • @EnableGlobalMethodSecurity 与 @EnableWebSecurity

    我正在使用 Spring 4 开发 REST API 我想使用 Spring Security 来保护一些端点 但根据我所读到的内容 可以使用以下任一方法来完成 EnableGlobalMethodSecurity or EnableWeb
  • 如何在 iPhone PhoneGap jQuery Mobile 中将文件附加到邮件

    我已经实施了Phone Gap 中使用 jQuery Mobile 的 iPhone 应用程序 作为我的应用程序的一部分 我需要单击 邮件 按钮发送电子邮件 为此我添加了EmailComposer plug in 在 www 文件夹中添加了
  • 是否有一种有效的算法来进行有限数量的整数分区?

    我必须创建一个接受两个整数的方法 让它们成为n and m 并返回有多少种求和方法m得到正数n 例如 像这样的方法调用partition 6 2 应该返回 3 因为有 3 种可能的方法 他们是5 1 4 2 and 3 3 顺便一提 4 2
  • 如何在并行进程(python)中将项目追加到列表中?

    这是我正在使用的更复杂代码的一个非常简单的版本 问题是我想将 method 函数中计算的项目附加到稍后可以显示的某个列表中 但是 当运行此代码时 列表对象为空 而结果数组已满 import multiprocessing as mp glo