我不是這方面的專家,但我一直髮現使用threading
需要的額外細節的數量是不值得的,如果我可以通過流程並行化。
您沒有提到的替代方案中的第三個模塊是subprocess
。
根據OP的要求編輯:您可以通過爲串行接口創建單獨的腳本來實現並行處理。這是一個快速演示,它假定兩個文件都在同一個目錄中。
文件com.py
- 串行腳本 - 這只是一個模擬的,但這裏的想法是,腳本獨立經營,並且只使用標準輸入和標準輸出與主控程序進行通信。
import sys
counter = 0
while True: # The program never ends... will be killed when master is over.
counter += 1
sys.stdin.readline()
sys.stdout.write('Serial from com1 is %d\n' % counter)
sys.stdout.flush()
文件master.py
- 主程序
from subprocess import Popen, PIPE
from time import sleep
p = Popen(['python', './com.py'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
print "serial communication started." # com.py is working but we moved on!
for i in range(3):
p.stdin.write('<command-here>\n')
print "comand sent."
print "received : %s" % p.stdout.readline()
sleep(1)
最後,這是預期輸出的轉儲:
[email protected]:~/Desktop$ ./master.py
serial communication started.
comand sent.
received : Serial from com1 is 1
comand sent.
received : Serial from com1 is 2
comand sent.
received : Serial from com1 is 3
HTH!
來源
2011-11-24 17:21:00
mac
感謝有關GIL發佈的信息。不適合使用的嵌入式系統將採用arm5tel架構的550 MHz CPU。我想我只是不得不做一些基準測試,看看我能從中得到多少。也感謝視頻生病看看它! – kal