[英]python - threading and infinite loops
主Python脚本的内部,在一个点变量VAR
设定和线程THR
与可变执行VAR
作为起始值。
在THR
有一个无限循环,每500 毫秒打印一次VAR
。
同时,主脚本处理了更多数据,并更新了VAR
。
我如何将更改反映到THR
,以便打印输出也将发生变化,而不会杀死它并产生新的输出?
当然,这是我的代码的非常粗略的简化,但是我宁愿阅读并专注于示例框架而不是我的特殊情况。
编辑:根据要求,这里是我所记的代码
import threading
VAR = 0
def function():
while True:
global VAR
while VAR == VAR:
print VAR
time.sleep(0.5)
THR = threading.Thread(target=function)
THR.start()
time.sleep(1)
function().VAR = 4 # this doesn't affect the output, only adds a seemingly random whitespace before it
time.sleep(2)
THR.VAR = 5 # nothing changes
您应该在变量内使用列表。
如果将列表传递给函数,则可以修改列表第一个位置的值(函数之外),同时您将看到线程如何打印正确的值。
伪代码:
(THREAD)
while True:
print list[0]
(MAIN)
start_thread(list)
#modify value
list[0] = X
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.