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

线程中的Python Subprocess.Popen

孔正文
2023-03-14
问题内容

我正在尝试使用子进程模块和线程内部的Popen启动“
rsync”。调用rsync之后,我还需要读取输出。我正在使用communication方法读取输出。当我不使用线程时,代码运行良好。看来,当我使用线程时,它挂在通信调用上。我注意到的另一件事是,当我将shell设置为False时,在线程中运行时无法从通信中得到任何回报。


问题答案:

您没有提供任何代码供我们查看,但是以下示例与您描述的内容类似:

import threading
import subprocess

class MyClass(threading.Thread):
    def __init__(self):
        self.stdout = None
        self.stderr = None
        threading.Thread.__init__(self)

    def run(self):
        p = subprocess.Popen('rsync -av /etc/passwd /tmp'.split(),
                             shell=False,
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE)

        self.stdout, self.stderr = p.communicate()

myclass = MyClass()
myclass.start()
myclass.join()
print myclass.stdout


 类似资料:
  • 如何从线程池中找到60%(或N%)的线程可用性?这背后的逻辑是什么? 父线程使用线程池线程生成多个网址,并等待所有子线程完成。 代码如下所示 父线程 子线程 用于跨线程通信的对象数据 在上述代码中,所需的线程硬编码为: 这种硬编码会导致线程池不足吗?如果线程池中没有可用的线程,会发生什么?如何在托管服务器的线程池中查找可用线程的总数? 谢谢。

  • 我找到了关于线程安全的代码,但它没有来自给出示例的人的任何解释。我想知道为什么如果我不在“count”之前设置“synchronized”变量,那么count值将是非原子的(总是=200是期望的结果)。谢谢

  • 问题内容: 今天有人在采访中问我有关Java线程概念的问题吗?问题是… 什么是线程? 我们为什么要穿线? 线程上的实时示例。 我们可以在Spring框架服务类中创建线程吗? flex可以调用线程吗? 除了Thread的定义之外,我没有回答任何问题,我也是从互联网中学到的。 谁能对此清楚地解释我。 更新 : 线程和普通的Java类之间有什么区别。为什么我们需要线程…我可以在线程中执行业务逻辑吗?我可

  • 问题内容: 我正在使用zend创建一个Web应用程序,在这里我创建了一个接口,用户A可以从该接口向多个用户发送电子邮件,并且效果很好,但是由于用户A等待太多,这会降低执行时间“已确认的回复”(将在电子邮件发送后显示。) 在Java中,我们可以通过“线程”执行该任务(发送电子邮件),并且不会减慢其余应用程序的速度。 与Java一样,PHP / Zend中是否有任何技术可以用来划分我们的任务,这可能会

  • 本文向大家介绍详解python中的线程与线程池,包括了详解python中的线程与线程池的使用技巧和注意事项,需要的朋友参考一下 线程 进程和线程 什么是进程? 进程就是正在运行的程序, 一个任务就是一个进程, 进程的主要工作是管理资源, 而不是实现功能 什么是线程? 线程的主要工作是去实现功能, 比如执行计算. 线程和进程的关系就像员工与老板的关系, 老板(进程) 提供资源 和 工作空间, 员工(

  • 如果我有一个固定大小的线程池,它什么时候真正调用启动线程?(它会在创建时启动它们吗?还是等到我开始提交任务时再启动?)

  • 问题内容: 我正在构建一个同时侦听TCP和UDP的应用程序,并且我的关机机制遇到了一些麻烦。当我在每个侦听线程上调用时,TCP线程会因侦听而中断,而UDP侦听器则不会。具体来说,TCP线程使用,它只是返回(没有实际连接)。UDP线程使用,而不会退出该方法。 这是我的JRE,操作系统中的问题,还是我应该切换到? 更新:我已经找到问题的分析。它确认行为不一致。 问题答案: 中断网络IO的常见习惯是关闭