[英]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.