2016-10-10 93 views
0

我有一個線程與控制檯應用程序的問題。在第一個線程中,我有一個函數,它將符號「x」寫入輸出。在第二個線程我有功能,它等待用戶輸入。 (符號「x」只是這個問題的隨機選擇)。其中一個線程在Python中重寫控制檯輸入

例如,

主題1:

 

    while True: 
     print "x" 
     time.sleep(1) 

線程2:

 

    input = null 
    while input != "EXIT": 
     input = raw_input() 
     print input 

但是,當我寫線程2文本控制檯,我輸入文本rewroted(爲前HELLO)。

 

    x 
    x 
    HELx 
    LOx 
    x 
    x[enter pressed here] 

    HELLO 
    x 
    x 

有什麼辦法如何防止用符號「x」重寫我的輸入文本?

感謝您的回答。

+0

目前還不清楚你的程序需要什麼樣的行爲。你想要的控制檯輸出是什麼? – CAB

回答

0

在控制檯中,標準輸出(由正在運行的程序生成)和標準輸入(由按鍵生成)均發送至屏幕,因此它們最終可能會混合在一起。

在這裏,你的線程1每秒寫1 x,所以如果你花費1秒以上鍵入HELLO那麼這將產生你提交的控制檯輸出。

如果你想避免這種情況,一些非詳盡建議:

  • 暫時中斷時,按鍵檢測

  • 使用庫如的ncurses創造分離區的線程1輸出你的程序輸出和用戶輸入

  • 只是抑制thread1輸入,或者將其發送到文件。

+0

謝謝。我嘗試ncurses。 –

相關問題