2012-01-26 22 views
3

如何在循環中讀取用戶輸入(並且不阻塞此循環中的工作)?如何在循環中讀取用戶輸入(並且不阻塞此循環中的工作)?

我想做一些基本的東西,比如切換DEBUG變量,打印某些變量等值,用戶將打印的某些特定鍵,但我的程序工作在常量循環中,並且此循環觸發另一個線程。我怎樣才能做到這一點?

+0

這是什麼循環你參考您是否想要包含代碼示例? –

+0

代碼是很少的文件大,所以我認爲這是不可能的,但它問內部是什麼,這裏是:它有很多打印,它使用eventlet線程,使用urllib和寫入和從文件讀取。將它粘貼到任何地方都太複雜了。 – SuitUp

+0

你在使用什麼操作系統? – Keith

回答

4

使用線程:

import threading 
import time 

value = 3 

def process(): 
    while True: 
     print(value) 
     time.sleep(1) 

thread = threading.Thread(target=process) 
thread.start() 

while True: 
    value = input('Enter value: ') 

(輸出會有種搞砸了這裏,因爲兩者的循環打印的東西到終端,但我認爲這個想法應該是清楚的。)

+0

小心在線程之間共享變量。您可能想要使用互斥鎖或將數據傳遞到隊列或排隊 – jdi

+0

絕對不是最漂亮但希望它顯示如何在單獨的線程中運行的東西。 –

+0

哦,我完全同意你的例子。我更多的是警告OP在應用時考慮到這一點。 – jdi