问题标签 [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.

0 投票
2 回答
1514 浏览

python - Python:将 wx.py.shell.Shell 插入单独的进程

我想创建一个外壳来控制我使用多处理模块创建的单独进程。可能的?如何?

编辑:

我已经实现了一种向辅助进程发送命令的方法:我code.InteractiveConsole在该进程中创建了一个,并将其附加到一个输入队列和一个输出队列,这样我就可以从我的主进程命令控制台。但我希望它在一个外壳中,可能是一个wx.py.shell.Shell,所以程序的用户可以使用它。

0 投票
1 回答
669 浏览

python - wxPython + 多处理:检查颜色字符串是否合法

我有一个带有两个进程的 wxPython 程序:一个主进程和一个辅助进程(我正在使用多处理模块。)主进程运行 wxPython GUI,第二进程不运行。但是,我想从辅助过程中做一些事情:给定一个描述颜色的字符串,检查这是否是 wxPython 的合法颜色。这意味着,我是否可以创建一个wx.Pen(color_string)

我该怎么做呢?

(我尝试制作一个 wx.Pen 并将其颜色与 null 颜色进行比较,但这需要在第二个过程中创建一个 wx.App,当我创建一个时,程序在某些特殊的 wxPython 窗口中引发了错误。)

0 投票
4 回答
61268 浏览

python - 如何在多处理器系统上生成并行子进程?

我有一个 Python 脚本,我想将它用作另一个 Python 脚本的控制器。我有一个有 64 个处理器的服务器,所以想为第二个 Python 脚本生成多达 64 个子进程。子脚本被称为:

其中 NAME 类似于 XYZ、ABC、NYU 等。

在我的父控制器脚本中,我从列表中检索名称变量:

所以我的问题是,作为孩子产生这些过程的最佳方式是什么?我想一次将子进程的数量限制为 64,因此需要跟踪状态(如果子进程已完成或未完成),以便我可以有效地保持整代运行。

我考虑使用 subprocess 包,但拒绝了它,因为它一次只产生一个孩子。我终于找到了多处理器包,但我承认被整个线程与子进程文档所淹没。

现在,我的脚本subprocess.call一次只生成一个孩子,如下所示:

我真的希望它一次产生 64 个孩子。在其他 stackoverflow 问题中,我看到人们使用队列,但这似乎会影响性能?

0 投票
3 回答
16841 浏览

python - python多处理的生产者/消费者问题

我正在编写一个具有一个生产者和多个消费者的服务器程序,让我感到困惑的是只有放入队列的第一个任务生产者被消费,之后排队的任务不再被消费,它们永远留在队列中。

生产者是一个 HTTP 服务器,一旦收到用户的请求,它就会将任务放入队列中。当队列中有新任务时,消费者进程似乎仍然被阻塞,这很奇怪。

PS另外两个与上述无关的问题,我不确定将HTTP服务器放在主进程以外的自己的进程中是否更好,如果是,我怎样才能让主进程在所有子进程结束之前继续运行。第二个问题,优雅地停止 HTTP 服务器的最佳方法是什么?

编辑:添加生产者代码,它只是一个简单的 python wsgi 服务器:

0 投票
3 回答
25808 浏览

performance - 多核 Intel CPU 中的高速缓存如何共享?

我有几个关于多核 CPU 或多处理器系统中使用的高速缓存存储器的问题。(虽然与编程没有直接关系,但在为多核处理器/多处理器系统编写软件时会产生很多影响,因此在这里问!)

  1. 在多处理器系统或多核处理器(英特尔四核、酷睿二双核等)中,每个 cpu 核心/处理器是否有自己的高速缓存(数据和程序高速缓存)?

  2. 一个处理器/核心是否可以访问彼此的缓存,因为如果允许它们访问彼此的缓存,那么我相信可能会有更少的缓存未命中,在这种情况下,如果该特定处理器缓存没有一些数据但其他一些数据处理器的缓存可能有它,从而避免从内存读取到第一个处理器的缓存?这个假设是否有效和真实?

  3. 允许任何处理器访问其他处理器的高速缓存内存会有什么问题吗?

0 投票
4 回答
4035 浏览

python - 防止多处理库中的文件句柄继承

在 Windows 上使用多处理似乎任何打开的文件句柄都由衍生的进程继承。这具有锁定它们的令人不快的副作用。

我对以下任一感兴趣:
1)防止继承
2)从生成的进程中释放文件的方法

考虑以下代码,它在 OSX 上运行良好,但在 os.rename 的 Windows 上崩溃

0 投票
9 回答
9451 浏览

multithreading - 哪些脚本语言支持多核编程?

我编写了一个小 Python 应用程序,在这里您可以看到任务管理器在典型运行期间的外观。 (来源:weinzierl.name

虽然该应用程序完全是多线程的,但不出所料,它只使用一个 CPU 内核。尽管大多数现代脚本语言都支持多线程,但脚本只能在一个 CPU 内核上运行

Ruby、Python、Lua、PHP 都只能在单核上运行。甚至据说对并发编程特别擅长的 Erlang 也受到了影响。

是否有一种脚本语言内置了对不限于单个内核的线程的支持?

包起来

答案并不完全符合我的预期,但答案TCL接近。我想补充一下perl,它(很像TCL)有基于解释器的线程。

Jython、IronPythonGroovy属于将一种经过验证的语言与另一种语言的经过验证的虚拟机相结合的范畴。感谢您在这个方向上的提示。

我选择Aiden Bell 的答案作为Accepted Answer。他没有建议一种特定的语言,但他的评论对我来说是最有见地的。

0 投票
2 回答
2494 浏览

python - 退出守护进程的问题

我正在编写一个生成其他几个子进程的守护程序。运行stop脚本后,主进程在打算退出时继续运行,这让我很困惑。

stop脚本只是一个单行脚本os.kill(pid, signal.SIGHUP),但之后子进程(工作进程和http服务器进程)很好地结束,但主进程只是停留在那里,我不知道是什么让它无法返回。

0 投票
1 回答
2878 浏览

python - python多处理管理器

我的问题是:

我有 3 个 procs 想要共享从同一个类和几个队列加载的配置。我想生成另一个 proc 作为 multiprocessing.manager 来分享这些信息。

我怎样才能做到这一点?有人可以购买避免使用全局变量并使用多处理管理器类的示例代码吗?

Python 文档不是很有帮助:-(

0 投票
4 回答
2670 浏览

python - 部署 Python 程序的问题(用 py2exe 打包)

我有一个问题:我在我的程序中使用了 py2exe,它在我的计算机上运行。我用 Inno Setup 打包它(仍然在我的计算机上工作),但是当我将它发送到另一台计算机时,尝试运行应用程序时出现以下错误:“CreateProcess failed; code 14001。” 该应用程序不会运行。(注意:我在我的程序中使用 wxPython 和多处理模块。)我搜索了一下,发现用户应该安装一些 MS 可再发行的东西,但我不想让我的用户的生活变得复杂。有解决办法吗?

版本:

Python 2.6.2c1、py2exe 0.6.9、Windows XP 专业版