2012-02-17 46 views
0

我遇到了一個問題:我正在Python 3.2中編寫一個程序,要求循環運行不間斷並與程序的其餘部分分離,但同時它必須是能夠從腳本的主要部分發送和接收數據(如字符串)。這些部分可以這樣工作:同時在Python中執行循環和函數3

# Continuing loop (LOOP) 
while True: 
    data.read() 
    if data[2] == "ff": 
     string += data 
    if request = True: 
     SEND(string, MAIN) 
     string = [] 

# Main program (MAIN) 
hexValues = REQUEST(string, LOOP) 

因此,就像有兩個Python進程同時運行但互相通話。

這甚至可能嗎?如果是這樣,我該怎麼做?

編輯:我使用的是Ubuntu GNU/Linux和Python 3.2。

+0

我沒有時間寫足夠的答案,但看看線程模塊:http://docs.python.org/library/threading.html – mwcz 2012-02-17 05:14:12

回答

0

這是threading模塊的用途。你也可以看看multiprocessing

+0

我知道線程之前,但我讀了我應該避免使用Python 3中的線程,因爲它叫做GIL。這仍然是相關的? – fouric 2012-02-17 15:22:36

+0

@GrantVesely:這是FUD,你應該忽略它。 GIL意味着你不能使用線程實現多處理器支持(這是線程從未打算做的事情)。就這樣。這並不意味着你不應該像你的情況那樣使用線程,這是線程*的目的。 – 2012-02-17 15:42:48