我需要做的是一次又一次地向一个以上的设备运行同一组命令。但我需要同时做到这一点。在将命令集发送到其他设备之前1-3秒的间隔是可以的。所以我想到了使用线程。
以下是代码的用法。
class UseThread(threading.Thread):
def __init__(self, devID):
super(UseThread, self).__init__()
... other commands ....
... other commands ....
... other commands ....
file = open(os.path.dirname(os.path.realpath(__file__)) + '\Samples.txt','r')
while 1:
line = file.readline()
if not line:
print 'Done!'
break
for Code in cp.options('code'):
line = cp.get('product',Code)
line = line.split(',')
for devID in line:
t=UseThread(devID)
t.start()
它可以在所有设备上运行并记录第一次试用的结果,但是对于第二次试用,它会挂在代码中的某处,它显示“Monkey Command:wake”
线程有什么问题让它以这种方式运行?
答案 0 :(得分:0)
线程代码必须采用run()
方法。
在__init__()
方法中的任何内容,将在设置线程之前调用,当创建新对象时(因此它是调用线程的一部分)。
class UseThread(threading.Thread):
def __init__(self, devID):
super(UseThread, self).__init__()
self.devID = devID
def run(self):
## threaded stuff ....
## threaded stuff ....
pass
## ...
for devID in line:
t=UseThread(devID) # this calls UseThread.__init__()
t.start() # this creates a new thread that will run UseThread.run()