问题标签 [multiprocessing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 生成的子进程是否继承了已注册的 atexit 处理程序?
我正在使用 python 2.5 编写一个守护程序。在主进程中,向atexit
模块注册了退出处理程序,似乎每个子进程结束时都会调用处理程序,这不是我所期望的。
我注意到python doc中没有提到这种行为atexit
,有人知道这个问题吗?如果这是它的行为方式,我如何在子进程中取消注册退出处理程序?3.0 版本中有一个 atexit.unregister,但我使用的是 2.5。
python - python中的多处理具有超过2个级别
我想做一个程序,并希望像这个进程一样生成一个进程 -> n 进程 -> n 进程
二级生成过程可以多处理吗?使用 python 2.6 的 multiprocessinf 模块
谢谢
python - 在进程之间共享具有文件句柄属性的对象
我有一个关于进程之间文件句柄的共享资源的问题。这是我的测试代码:
然后我得到KeyError
如下所示:
我想当我将File()
对象放入队列时,对象被序列化,并且文件句柄无法序列化,所以,我得到了KeyError
:
有人对此有任何想法吗?如果我想共享具有文件句柄属性的对象,我该怎么办?
python - python单例进入多处理
如何编码以在进程之间共享“单调”类的相同实例?
python - 在多个 Python 多处理队列上“选择”?
等待(不旋转)直到两个(多处理)队列中的任何一个可用的最佳方法是什么,它们都驻留在同一系统上?
python - Python:多核处理?
我一直在阅读有关 Python 的多处理模块的信息。我仍然不认为我对它可以做什么有很好的理解。
假设我有一个四核处理器,我有一个包含 1,000,000 个整数的列表,我想要所有整数的总和。我可以简单地做:
但这只会将其发送到一个核心。
是否有可能,使用多处理模块,将数组划分,并让每个核心得到它的部分的总和并返回值,以便可以计算总和?
就像是:
任何帮助,将不胜感激。
java - 如何将您的程序与对“坏”API 的调用隔离开来?
当我使用 Java 开发一个(学术)软件时,我被迫使用一个实现得很糟糕的 API。这意味着针对特定输入数据集对该 API 的调用有时永远不会返回。这一定是软件中的一个错误,因为它提供的算法是确定性的,有时它会在一组数据上终止,有时它会在同一组数据上陷入无限循环......
但是,修复 API 或重新实现它完全超出了范围。我什至有源代码,但 API 严重依赖于其他未记录且没有源代码的 API,并且到那时已经从网络上消失了(或者从未存在过?)。另一方面,这个“糟糕”的 API 是唯一一个解决了我遇到的特定问题的 API,所以我真的必须坚持下去。
问题是:处理表现得那么糟糕的 API 的最干净的方法是什么?当我遇到这个问题时,我决定将对 API 的调用放到一个单独的线程中。然后另一个线程偶尔会检查该线程是否已终止。如果过了一定时间,我会杀死正在使用的处理线程Thread#stop()
并重新开始处理,希望它下次会返回。现在,我知道(并且当时知道)这种方法已被弃用,不能使用。但在这个学术背景下,让软件可能运行到未定义状态而不是让它崩溃是可以接受的。
忽略已经进入无限循环的处理线程也是不可接受的,因为它执行了一些相当 CPU 密集型的操作,这会显着降低用户机器的速度。
我没有尝试的另一种方法是在单独的进程而不是线程中开始处理,因为可以干净地杀死子进程而不会使软件处于不一致状态。或者新SwingWorker
课程(尚不可用)可以完成这项工作吗?它有一个cancel()
方法,但文档说它“尝试取消执行此任务”,所以它看起来也不是一种可靠的方法。
java - *this* 真的是从 Java 代码启动第二个 JVM 的最佳方式吗?
这是我自己之前的问题的后续,我有点不好意思问这个......但无论如何:你将如何以独立于系统的方式从独立的 Java 程序启动第二个 JVM?并且不依赖于例如像 JAVA_HOME 这样的环境变量,因为它可能指向与当前运行的 JRE 不同的 JRE。我想出了以下代码,它确实有效,但感觉有点尴尬:
此外,当前运行的 JVM 可能已使用第二个 JVM 不知道的其他一些参数(-D、-X...、...)启动。
python - Python 多处理如何优雅地退出?
我只是想知道上面的代码为什么没有真正打印“你退出”。我究竟做错了什么?如果是这样,有人可以指出正确退出的正确方法吗?(我不是指 process.terminate 或 kill)