【发布时间】:2018-02-20 15:26:57
【问题描述】:
我对 Python 还是很陌生,只是不知道我是如何做到这一点的。
我想要的是一个后台 while 循环,它每秒打印一些内容,但可以在我想要的时候将其关闭和打开。 对于这个例子,我只想让它在前 4 秒打开,然后在 4 秒后关闭(所以实际上什么都没有发生)。我将它作为一个进程运行。
#!/usr/bin/env python
import sys
import os
from multiprocessing import Process
from time import gmtime, strftime,sleep
## Start with false
switch = False
def logstate():
switchT = switch
while (switchT == True):
print('state')
sleep(1)
switchT = switch
if __name__ == '__main__':
# start process
p1 = Process(target=logstate())
p1.start()
p1.join()
# switch on
switch = True #?
sleep(4)
# switch off
switch = False #?
sleep(4)
所以可能有很多方法可以做到这一点,但不知道什么是最简单的方法。非常感谢。
【问题讨论】:
-
作为线程可以共享全局变量
-
while 循环永远不会以
switch开头的False开始
标签: python python-3.x