Skip to main content
 首页 » 编程设计

python之带子进程的线程

2025年05月04日24soundcode

我正在使用 python 2.7 和线程新手。我有一个类文件和运行方法。但是当我创建线程实例时,我没有看到调用 run 方法。我还计划在 run 方法中使用 subprocess.Popen 并为每个文件名获取进程的 stdout 并打印输出。

请告诉我这里缺少什么来调用 run 方法。

class FileScanThread(threading.Thread): 
    def __init__(self, myFileName): 
        print("In File Scan Thread") 
        self.mapFile = myFileName 
        #myjar=myFileName 
        self.start() 
 
    def run(self): 
        print self.mapFile 
 
  x= FileScanThread("myfile.txt") 

请您参考如下方法:

您忘记调用母类构造函数来指定目标。不是java,run也没有什么特别的意思。默认情况下,目标是 None,线程什么也不做。

import threading 
 
class FileScanThread(threading.Thread): 
    def __init__(self, myFileName): 
        threading.Thread.__init__(self,target=self.run) 
        # another syntax uses "super", which is simpler in python 3 
        # super().__init__(target=self.run) 
 
        print("In File Scan Thread") 
        self.mapFile = myFileName 
        #myjar=myFileName 
        self.start() 
 
    def run(self): 
        print(self.mapFile) 
 
x= FileScanThread("myfile.txt") 
 
x.join()  # when you're done