2012-08-01 82 views
0

我在python中啓動一個循環,並且在啓動循環之後,我希望在循環繼續執行時執行代碼,而循環保持循環(在「背景」中)。讓一些代碼在執行時運行更多

x=True 

while x: 
    #do some output 
    sleep(1) 

#ask for input or something 
if input()=='something': 
    x=False 

所以在那個例子中,#do some output將繼續發生,而輸入要求。

這是可能的蟒蛇?是否有任何解決方法可以實現這一目標?

+6

看看線程和/或多處理模塊。 – freakish 2012-08-01 09:57:38

+2

有很多方法可以實現這一點,但正確的選擇將非常依賴於在後臺執行的工作的性質。你可以看看線程,多處理,某種形式的異步處理,或greenlet等..... – 2012-08-01 09:59:58

+2

@freakish使用多處理完成它,隨時張貼它作爲答案 – ACarter 2012-08-01 10:11:28

回答

0

繼OP的願望之後,我發佈了答案。 :)有多個庫可以實現你想要做的事情。最知名的包括:

它們之間有細微的差別,但我猜,你不應該在此刻擔心。儘管如此,我鼓勵你閱讀更多關於mutli處理和線程的一般信息。 「綠色」線程也是一個有趣的選擇。

3

從我的理解,你想要的是創建一個線程,繼續執行一些任務在後臺。

http://docs.python.org/library/threading.html

線程是一個比較複雜的問題,所以給你一個食譜這裏將不會達到多少。我建議你看一下文檔以瞭解涉及的內容。

更新您的問題或創建一個新的問題,如果您遇到與實施相關的問題。

編輯: 我同意Tim Hoffman所做的評論,正確的解決方案取決於你想要達到的目標。根據我的理解,線程應該適合你,但是如果你給我們更多的細節,可能會更容易給出更準確的答案。