问题标签 [multiple-processes]

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 回答
446 浏览

python - python中的并发期货不等待进程完成

我有一个函数 main(),它生成 4 个进程,并最终开始执行它们,但是一旦开始多次,它就会循环整个代码块。我想做什么我认为是显而易见的;打印“hello1”,执行进程(以及打印语句),然后打印“hello2”

我究竟做错了什么?如果这更容易,也将对使用 multiprocessing.Process() 的解决方案持开放态度,但我在那里也遇到了同样的问题。

0 投票
1 回答
43 浏览

linux - 如何将来自多个进程的日志写入按时间戳排序的单个文件?

考虑有 3 个进程需要将消息记录到单个文件中。来自 3 个进程的消息速率不同。例如:P1 每秒记录 10 个请求;P2 每秒记录 20 个请求,而 P3 每秒仅记录 1 或 2 个请求。我们如何确保这些日志是按照时间戳的顺序写入的?我的意思是它应该在写入文件之前按时间戳排序。

我们怎样才能做到这一点?

0 投票
1 回答
429 浏览

thread-safety - 多线程的 Fifo 计时。从一个线程对 fifo 的两次写入仅适用于 sleep(1)

我正在制作一个应用程序,它一开始就分为两个进程。简化后,一个进程不断地从 fifo 文件中读取数据,另一个进程偶尔将通知写入 fifo 文件。现在,一切正常,除非写入过程 write 连续快速调用它的写入方法。然后只有第一个通知会从 fifo 文件中写入(或读取?)。

这是fifo读取过程的代码:

这是写入 fifo 文件的方法(在另一个进程中):

这是两个使用 write_to_fifo(..) 方法的调用:

第一个始终正确打印,第二个仅在 sleep(1) 未注释时有效。因此,我猜它与时间有关。如果我没有同时运行多个线程,那么将 sleep(1) 留在其中不会有问题。我想运行多个线程会使时间不可预测,并且您不能在不同线程的函数调用之间添加 sleep(1) 行。

  1. 为什么这个程序只有在引入延迟时才起作用?
  2. 这是应该的吗?
  3. 如果没有,我该如何克服?
0 投票
1 回答
182 浏览

c - 在 C(进程)中使用两个管道读取后无法退出循环

我已经查看了这个以及这个堆栈溢出链接。

我无法理解关闭管道写入端的过程。在下面的代码中,我有 3 个进程,一个父进程,一个父进程的子进程,一个子进程的子进程。我正在尝试为命令模拟管道 - cat xxx | grep 28 | sort。我为此编写了一些代码,它基本上创建了排序、“抓取”/过滤器并打印我的输入,但它在最后挂起。我必须 ctrl + c 退出。我的代码有点乱,但如果你能帮我找出问题,那就太好了。

这是我得到的输出。不确定它是否相关,但如您所见,结果按团队名称排序。它只是不会终止。

0 投票
1 回答
61 浏览

logging - Cassandra:有这么多gc.log进程正常吗

我对 cassandra 很陌生,所以如果有人能解释一下我在这里看到的内容。我有一个带有 16 个节点的 cassandra 环(简单策略),如果我在节点上使用 htop,我会看到发生了太多 gc.log 进程,我认为这也占用了大量内存!其中 16 个属于 16 个节点,但其余的呢?有这么多日志事件是正常的吗?

cassandra进程

0 投票
0 回答
165 浏览

c - 如何在对多个文件描述符使用轮询时捕获来自子进程的所有信号?

所以我有这个任务,他们告诉我必须创建一个进程树(带有number_of_children分支),将一些消息从底层工作人员发送到进程树的根,最后在工作人员退出之前,他们必须发送一个 SIGUSR1 信号扎根。经过一些(与我的问题无关)打印后,必须打印接收到的信号数量。

首先,我设置了信号处理程序,调用了这个例程(我在网上找到了它,我认为它工作得很好):

然后我使用for循环为每个孩子创建一个未命名的管道数组,然后派生孩子,最后调用一个监视文件描述符的例程,以便我可以以非阻塞方式读取。轮询的逻辑如下:

通过这种方式,我读取了所有写入的内容(尽管 poll 有时会被信号中断)并且读取没有问题。

实际问题是,当我打印根收到的 SIGUSR1 信号时,我没有得到一致的值。在几次运行中,假设每个进程节点有 3 个子进程,我得到的值从 3 到 9(这是正确的)。有没有更安全的方法来处理信号而不是使它们变笨。

注意:经过一些研究,我知道我不能使相同类型的信号处于待处理状态(我尝试使用 sigqueue 发送信号)。我还尝试在轮询期间忽略信号,并在轮询结束时重新设置处理程序,但当然,由于信号已经被屏蔽,因此它不起作用。我还检查了一个相关的堆栈帖子,并将我的 signal_counter 声明为volatile sig_atomic_t,但它仍然不一致。

0 投票
2 回答
165 浏览

c - fork() 不并行运行

我是编程过程的新手,我的基本程序并没有像我预期的那样工作。我在 Oracle VM 上的 Ubuntu 18.04 上运行此代码。

这是代码:

这是我总是得到的结果:

这是我编译程序的命令:

谢谢!

0 投票
1 回答
25 浏览

django - 进程是否与 django-post_office 中的并发相同?

我每天早上在一个任务中使用django-post_office发送 c.10,000 封电子邮件。

send_queued(processes=1, log_level=None)可以通过celery 任务中的函数来执行此操作。

我知道并发运行 celery 是最佳实践,例如celery -A settings worker -l info --concurrency 6

processes国旗和django-post_office这个一样吗?例如,如果我正在运行6并发 celery 进程,我是否应该将此标志也设置为6

如果不是,这两者有什么区别?

0 投票
2 回答
266 浏览

pytorch - 在单个 GPU 上运行两个不同的独立 PyTorch 程序

我有一个 16GB 内存的 NVIDIA GPU。我必须运行两个不同的(并且是独立的;意思是,两个不同的问题:一个是视觉类型任务,另一个是 NLP 任务)Python 程序。代码是使用 PyTorch 编写的,并且两个代码都可以使用 GPU。

我已经测试过程序 1 需要大约 5GB 的 GPU 内存,其余的都是免费的。如果我运行这两个程序,它会妨碍模型性能还是会导致任何进程冲突?

相关问题;但这并不一定意味着 PyTorch 代码

0 投票
1 回答
82 浏览

php - 想要使用 mpdf 在单个文件中生成多个 pdf

我正在使用 mpdf lib 生成多个文件,我不想单独生成所有文件,我想在一个由页面分隔的 pdf 中生成文件。

我添加了 addpage 方法来生成单个文件但有一个问题,我的第一页按预期打印,但第二页是空白的。我知道我需要取消设置 dom,因为这个库可以为多个文件生成新实例。

然后我决定取消设置循环中的 dom,当我的循环迭代完成时,它说 $mpdf var 不存在。有没有其他方法可以取消设置 dom 以在单个文件上生成多个页面?

如果我在文件末尾添加未设置,则只有第一页成功,但第二页留空。