【问题标题】:How to run different child process independently in python?如何在python中独立运行不同的子进程?
【发布时间】:2011-08-18 20:56:51
【问题描述】:

我有各种我打算独立运行的 python 函数。 例如, def graphics() 负责所有 GUI 元素并渲染 GUI def connect() 这个函数不断监听并连接到其他系统

问题是这两个函数没有并行运行。我在python中使用了多处理模块 这是代码的要点

p = Process ( target = graphic() , args = () )      
p1 = Process (target = connect() , args = () )
p.start()
p1.start()
p.join()
p1.join()

这两个函数即使在不同的进程中运行,也不是并行运行的。如果我关闭 GUI,我只能连接到系统。有什么方法可以并行生成进程,我可以在其中独立运行图形和连接函数?

【问题讨论】:

  • 您能详细说明一下吗?您期望从上面的代码中获得什么行为? “不并行运行”是什么意思?
  • 基本上,图形功能负责渲染 GUI,我使用 Tkinter 进行了编码。现在 connect 函数不断循环并接收来自其他各种系统的连接。所以这就是我所做的。我运行了这个程序,并在其他终端中从打算连接到这个主系统的从系统中触发。关键是,连接仅在我关闭 GUI 时发生,即终止图形功能。它不像这两个函数是独立并行运行的。
  • 您是否尝试在单独的 python 进程中直接运行这两个函数,以确保您看到的是您所看到的?除了 CPU 周期之外,还可能存在某种资源争用。
  • 更新这个问题。不要向其中添加 cmets。请更新它非常清楚。

标签: python


【解决方案1】:

可能是因为您调用函数而不是传递对它们的引用?即,前两行应该是:

p = Process(target=graphic, args=())
p1 = Process(target=connect, args=())

【讨论】:

  • 而且,严格来说,args=() 参数不是必需的。
  • 不错的收获!完全扫了一眼!
猜你喜欢
  • 2019-09-24
  • 2019-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多