我有一个用python2.7编写的脚本,它调用一个线程。但是,不管我做什么,线程都不会调用函数。在
它调用的函数:
def siren_loop():
while running:
print 'dit is een print'
我试着称之为:
^{pr2}$或者:
running = True
thread.start_new_thread( siren_loop, () )
我甚至试着给siren_循环添加参数,看看这是否有效,但没有改变。我只是不能让它打印siren_loop函数中的行。在
我还尝试了许多其他奇怪的事情,但显然行不通。我做错什么了?在
编辑:既然有人说它有效,我就试着从另一个函数调用线程。所以看起来像这样:
def start_sirene():
running = True
t = threading.Thread(target=siren_loop)
t.start()
然后这个部分从以下位置调用:
if zwaailichtbool == False:
start_sirene()
print 'zwaailicht aan'
zwaailichtbool = True
sleep(0.5)
也许这会导致问题? 最后一个语句中的print语句起作用,当我在thread语句之前或之后添加print语句时,它也起作用。在
所以,在我试了几个小时的各种事情之后,我找到了一个解决方案,但仍然不明白问题的存在。
显然这个程序不喜欢很多步骤。我走了一步(start-siren方法),但是使用了完全相同的代码,突然它起作用了。我不知道为什么会有问题。如果有人知道,请给我启发
对我来说,它工作得非常好,您还可以将running指定为thread_函数的关键字参数。在
running
是代码中的局部变量。将global running
添加到start_sirene()
相关问题 更多 >
编程相关推荐