问题标签 [multiprocess]

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 投票
1 回答
2027 浏览

python - Python 鼻子 - 以编程方式运行多进程

我无法以编程方式处理多个进程。

这有效...:

它一次生成 4 个浏览器。

然而,当在 Eclipse 中运行它时,它会一一运行它们。

我知道争论开始了,因为我可以看到详细争论的不同之处。

0 投票
1 回答
1179 浏览

python - subprocess.Popen 的多个实例

嗨,我刚刚开始在 python 中编程,我正在尝试使用 subprocess.Popen 来运行我使用“make”编译的程序的多个实例。但在我做“make”之前,我必须做一些文本处理并生成一组“make”将使用的文件。现在我想用不同的生成文件同时运行同一个程序,并将程序输出的所有实例的输出写入同一个文件。根据实例的数量,我还必须生成那么多的文本文件。本质上,我想同时执行第一个 for 循环以下的所有操作,比如说“n”次。提供的任何帮助将不胜感激:)。

0 投票
1 回答
8757 浏览

python - Python,多线程太慢,多进程

我是一个多处理新手,

我对线程有所了解,但我需要提高这种计算的速度,希望通过多处理:

示例描述:将字符串发送到线程,更改字符串+基准测试,将结果发送回打印。

这目前大约需要 6 秒,我需要它更快。
我一直在研究多处理,但找不到与上述代码等效的东西。我认为我所追求的是汇集,但我发现的例子很难理解。我想利用所有内核(8 个内核)multiprocessing.cpu_count(),但我真的只有一些关于多处理的有用信息,不足以复制上述代码。如果有人能指出我正确的方向或更好的方向,请提供一个将不胜感激的例子。请 Python 3

0 投票
4 回答
18383 浏览

python - Python,使用多进程比不使用慢

在花了很多时间试图围绕多处理进行思考之后,我想出了这段代码,它是一个基准测试:

示例 1:

这在 2 秒内完成(多线程时间的一半)。出于好奇,我决定接下来运行这个:

示例 2:

令我惊恐的是,这不到半秒就跑完了!

这里发生了什么?我希望多处理运行得更快 - 鉴于示例 1 是示例 2 分为两个进程,它不应该在示例 2 的一半时间内完成吗?

更新:

在考虑了 Chris 的反馈后,我已经包含了消耗最多处理时间的“实际”代码,并引导我考虑多处理:

0 投票
2 回答
987 浏览

c++ - 如何计算 Linux 中多进程应用程序的 CPU 使用率

我尝试用 C/C++ 编写一个程序,使其表现得像 Linux 中的 top 命令。我已经做了一些研究,并且已经知道如何计算进程的 CPU 使用率。我们可以通过 /proc/[PID]/stat 在当前时间和几秒后计算 stime + utime 来获得 CPU 使用率。然后计算 stime + utime 的差异,并将结果除以 uptime 差异,然后我们得到 CPU 使用百分比。在单进程/多线程进程上会很容易。

问题在于像 httpd 这样的情况,它作为多进程工作。当网络服务器繁忙时,httpd 将分叉子进程来服务一堆请求。然后我计算总进程数,比如说 500。我想计算这些进程的 CPU 使用率,但总结它们,所以我只看到 1 httpd CPU 使用率。但是如果我像上面提到的那样做算法,当几秒钟后进程数减少到<500时,我得到负值,因为计算会是这样的(例如,我选择随机数,只是为了给你简要说明):

如果您查看上面的示例,Stime + Utime 的增量将导致负值,因为进程数减少,并在几毫秒后给出较低的值。我只是想知道,有没有其他方法可以计算这样的过程行为?谢谢你。

0 投票
2 回答
412 浏览

c - C:多进程stdio追加模式

我用C写了这段代码:

此代码以附加模式打开一个文件并附加 200 次字符串。我设置了可以包含完整字符串的大小为 100 的 buf。然后我使用这个 bash 脚本创建了多个运行这段代码的进程:

我希望在输出中字符串永远不会混淆,因为我读到当打开带有 O_APPEND 标志的文件时,文件偏移量将在每次写入之前设置为文件末尾,并且我使用的是完全缓冲的流,但我得到每个进程的第一行是这样混合的:

后面几行

看起来写入因调用 rand 函数而被中断。

那么......为什么会出现这些线条?防止这种情况的唯一方法是使用文件锁定......即使我只使用附加模式?

提前致谢!

0 投票
1 回答
329 浏览

multithreading - 多线程的分段错误

由于这个等式末尾的 free(),我得到了错误分段错误......

我不需要释放临时变量 *stck 吗?或者因为它是一个本地指针并且从未通过 malloc 分配内存空间,编译器会为我清理它?

0 投票
3 回答
1824 浏览

c++ - C++如何检查文件是否正在使用——多线程多进程系统

C ++:有没有办法检查文件是否已打开以供另一个进程/类/设备写入?

我正在尝试从其他进程可以访问的文件夹中读取文件以进行写入。如果我读取一个同时被写入的文件,读取和写入过程都会给我错误(写入不完整,我可能只会得到一个标题)。因此,在决定是否打开该特定文件之前,我必须检查某种类型的条件。我一直在使用 boost::filesystem 来获取我的文件列表。我希望与 Unix 和 Windows 兼容。

0 投票
5 回答
652 浏览

python - 多进程还是多线程?- 对数百万次迭代的简单计算进行并行化,并将结果存储在单个数据结构中

我有一个包含 {string:list} 条目的字典 D,并且我为 D 中的一对字符串 (s1,s2) 计算了一个函数 f( D[s1],D[s2] ) --> float。

此外,我创建了一个自定义矩阵类 LabeledNumericMatrix,它允许我执行诸如 m[ ID1, ID2 ] = 1.0 之类的赋值。

我需要计算 f(x,y) 并将结果存储在 m[x,y] 中,用于字符串集合 S 中的所有 2 元组,包括当 s1=s2 时。这很容易编码为循环,但是随着集合 S 的大小增长到较大的值(例如 10,000 或更多),此代码的执行需要相当长的时间。

我存储在标记矩阵 m 中的所有结果都不相互依赖。因此,使用 python 的多线程或多进程服务并行化这种计算似乎很简单。但是,由于 cPython 并没有真正允许我通过线程同时执行 f(x,y) 的计算和 m[x,y] 的存储,看来多进程是我唯一的选择。但是,我不认为多进程旨在在进程之间传递大约 1GB 的数据结构,例如我的标记矩阵结构包含 10000x10000 个元素。

任何人都可以提供以下建议(a)我是否应该避免尝试并行化我的算法,以及(b)如果我可以进行并行化,如何做到这一点,最好是在 cPython 中?

0 投票
3 回答
1677 浏览

c# - 调试由另一个产生的进程

我编写了一个程序,它产生了一些进程。

默认情况下,Visual Studio 不会调试新进程——只调试创建新进程的原始进程。

有没有办法在代码中自动将 Visual Studio 连接到创建时的进程?