在Python中,如何在启动后将队列发送到multiprocessing.Process?

发布于 2024-10-05 18:03:55 字数 146 浏览 2 评论 0原文

通常我会做类似的事情:

q = Queue()
p = Process(target=f, args=(q,))
p.start()

有没有办法传递另一个队列?呃...现在我想了一下——这可以通过q 来完成吗?

Typically I do something like:

q = Queue()
p = Process(target=f, args=(q,))
p.start()

Is there some way to pass p another Queue? Er... now that I think about it - can this be done through q?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

还不是爱你 2024-10-12 18:03:56
  1. 是的,可以通过q来完成。您可以在那里传递任何对象,包括另一个Queue
  2. 但是我不推荐这种做法。描述一下为什么你最初需要这个,也许有更好的设计。
  1. Yes, it can be done via q. You can pass any object there, another Queue included
  2. I wouldn't recommend this practice, however. Describe why you originally need this, maybe there's a better design.
遗弃M 2024-10-12 18:03:56

不可以,一旦创建了进程(进程被分叉),就不能再向其发送队列。它们只能在流程创建时发送。否则会导致异常。

No, once a process has been created (the process is forked), queues can no longer be sent to it. They can only be sent at process creation time. To do otherwise results in an exception.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文