我很头疼,试图弄清楚如何用Python处理2个线程。
我的想法是为闪烁的LED创建一个线程,该线程具有无限的while循环,并且当全局变量更改为True时,它开始闪烁等,但始终处于无限循环中。
其他主线程,将等待信号闪烁,但是如果信号正在闪烁,它将重置全局闪烁计时器,因此它必须在单独的线程中。
我遇到的问题是,当我从主线程启动LED线程时,由于LED线程具有无限循环,因此它会使主线程停止运行,而不是flashThread.start()
if __name__ == "__main__":
print('starting main...')
flashThread = threading.Thread(name='SFlashing', daemon = True, target=Flash)
flashThread.start()
while(True):
print('running main...')
time.sleep(2)
它永远不会到达running main...
Flash()
只是无限的while循环,它确实填充了全局变量...
这是根据您的解释,主线程打印running main...
+并行线程递增变量count
的示例。您的代码应该可以工作,也许您可以向我们提供有关Flash
循环的更多信息,以便我们可以为您提供帮助?
import threading
import time
def Flash():
count = 0
while True:
print("count", count)
count += 1
time.sleep(1)
print('starting main...')
flashThread = threading.Thread(name='SFlashing', daemon = True, target=Flash)
flashThread.start()
while(True):
print('running main...')
time.sleep(2)
输出:
starting main...
count 0
running main...
count 1
running main...
count 2
count 3
running main...