我是新的线程,甚至更新的python我经历了多个问题,出于某种原因,我无法正确理解它。多线程暂停第二个线程
我有一个显示LED(数字)状态(真/假)的应用程序,现在我希望它闪烁,因此它打开等待2秒钟,然后关闭等待2秒钟。我会在每次更改后显示它所处的状态。我创建的一个LED具有2秒一个5闪烁之间的延迟2,所以我预测这两个的输出会是这样:
LED: 15 State: True
LED: 16 State: True
LED: 16 State: False
LED: 15 State: False
,而是我得到
LED: 15 State: True
LED: 15 State: False
LED: 16 State: True
LED: 16 State: False
和代码本身:
import time
from threading import Thread
class ledController(Thread):
#static variables
def __init__(self, GPIO, state=False): # x = " " - Default variable if user leaves it empty
self.GPIO = GPIO
self.state = state #Default LED state is off
def ledSwitch(self):
self.state = not self.state
def ledON(self):
self.state = True
def ledOFF(self):
self.state = False
def ledBlink(self, duration):
self.ledON()
print(self.ledDetails())
time.sleep(duration)
self.ledOFF()
print(self.ledDetails())
time.sleep(duration)
def ledDetails(self):
return "LED: " + str(self.GPIO) + " State: " + str(self.state)
redLED = ledController(15)
blueLED = ledController(16, True)
redLED.ledBlink(5)
blueLED.ledBlink(2)
你不是真正创建线程,所以一切运行顺序 –