Python线程:没有得到理想的结果

时间:2016-12-22 14:59:39

标签: python multithreading

我编写了一个监视两个参数的简单线程类。当我命令两个线程启动命令时,我没有收到任何错误,但是,对我的第二个线程的调用似乎没有执行。这是我的班级:

import threading
import time
from SHFramework import SH

class CLSThread():
   def __init__(self):
      self.tsh = SH()
      self.tsh.StartServer()
      self.GetStatusThread1 = threading.Thread(target=self.GetTemperature())
      self.GetStatusThread2 = threading.Thread(target=self.GetX())
   def GetTemperature(self):
      while True:
         temp_val = self.tsh.GetValue("Temperature")
         print("value from {}:".format("Temperature")
         print str(temp_val)
   def GetX(self):
      while True:
         x_val = self.tsh.GetValue("X")
         print("value from {}:".format("X")
         print str(x_val)
clst1 = CLSThread()

clst1.GetStatusThread1.start()
clst2.GetStatusThread2.start()

当我命令'clst1.GetStatusThread1.start()'时,它打印出来自GetTemperature的结果就好了。但是,我无法判断它是否曾命令GetX,因为它从未打印出该方法的结果。虽然,当我从两种方法中删除while True:语句并且只留下后面的行时,它会打印出两种方法的结果(clst1.GetStatusThread1.start()clst2.GetStatusThread2.start())。 / p>

0 个答案:

没有答案