当前位置: 首页 > 面试题库 >

可以在不等待进程完成的情况下调用subprocess.call吗?

白志勇
2023-03-14
问题内容

我当前正在使用subprocess.call()来调用另一个程序,但是它将阻塞正在执行的线程,直到该程序完成。有没有一种方法可以简单地启动该程序而无需等待返回?


问题答案:

使用subprocess.Popen代替subprocess.call

process = subprocess.Popen(['foo', '-b', 'bar'])


 类似资料:
  • 问题内容: 该代码选择同一文件夹中的所有xml文件,作为被调用的可执行文件,并以异步方式将处​​理应用于回调方法中的每个结果(在下面的示例中,仅打印文件名)。 如何避免使用sleep方法阻止main方法退出?我在解决问题时遇到了麻烦(我想这就是同步结果所必需的),因此,我们将不胜感激! 问题答案: 您可以使用sync.WaitGroup。引用链接的示例:

  • Project Reactor是否可以在一个mono中等待一个事件/条件,而不需要使用每个mono的阻塞线程?使用,我可以完成这样的事情,但我不知道如何使用Project Reactor。 我的问题是我需要将请求与响应相关联。响应时间变化很大,有些甚至永远不会得到回复和超时。在客户端,每个请求阻塞线程不是问题,但由于这是一个服务器应用程序,我不想最终导致每个请求产生一个线程阻塞等待响应。 API如

  • 我有一个位于服务器上的bash脚本和一个将在该服务器上运行的Java应用程序。我的目标是从Java应用程序调用这个脚本两次,以便两者同时运行。 我有以下代码: 这应该通过bash调用脚本,在后台运行它,然后在第一个完成之前立即启动另一个脚本(脚本运行大约需要十秒钟)。这一切似乎都工作得很好。 问题是,然后我想等到两个后台进程都完成后再转到Java程序的下一行。我尝试了这个: 然而,“下一行代码”似

  • 我在blender中有一个python脚本 我试着用通勤,但还是没用: 此shell脚本在MacOS上非常有效(在更改路径后),并且在使用时会等待 但是在Windows上,我在Blender中运行下面的python脚本,然后一旦它到达子进程行就会打开并运行shell脚本,而Blender不等待它完成,它只在控制台中打印而不等待Git Bash完成。有人帮忙吗?

  • 我有4个按钮,基本上他们设置一个变量的值,当一个国际象棋提升需要做。然而,我认为程序流并没有等待用户做出那个选择。我的代码是这样的: 此时,当窗口显示时,当用户没有选择值时,程序继续运行,而另一个函数使用了导致错误的。有没有什么方法可以让我停止程序流,直到用户点击其中一个按钮,以便后面的代码可以使用该变量的值?

  • 我遇到了一个非常奇怪的问题,java线程正忙着等待。 我有一个线程忙于等待其他线程的静态变量的状态。假设忙碌等待的线程正在等待另一个线程的静态int变量达到某个值 如果我使用上面的代码,线程将被卡在忙等待中,不会跳出while循环,即使确实达到5。 但是,如果我使用其他代码,那么线程确实会跳出忙等待循环。有时,一旦达到5,其他时候会晚一点。但它会发生。对于我的特定示例,我将其用作“无意义的工作”