簡體   English   中英

python-線程和無限循環

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM