0

感謝您花時間檢查了這一點。Python多處理功能

我正在跟隨機器人行,我卡住了! 我有2個傳感器,我寫了一個函數來讀取返回整數的函數。我需要同時運行兩個功能,一個用於每個傳感器...

基本上,有三件事情正在進行。

  • Read1()讀取左傳感器和不斷更新變量(while loop

  • Read6()讀右傳感器和不斷更新變量(while loop

  • Main()取兩個變量和集電機相應的速度。

我需要Read1()Read6()打破到自己的線程,以便Main()不被封鎖等着他們。

謝謝!

回答

0

這是一個psedue代碼,這將有助於您瞭解如何實現這一點使用多線程

import threading 

thread1 = Read1() 
thread2 = Read1() 
thread1.start() # This actually causes the thread to run 
thread2.start() 
thread1.join() # This waits until the thread has completed 
thread2.join() 
# At this point, both threads have completed 
Main (thread1.total, threat2.total) 

只是注:在Python實際並行,你應該使用multiprocessing模塊到餐桌並行執行多個進程(由於全局解釋器鎖定,Python線程提供交錯,但實際上是串行執行的,而不是並行執行,並且僅在交錯I/O操作時有用)。

+0

感謝您的建議!線程1啓動,但線程2不啓動。真的很困惑!如果函數返回,線程結束,它拒絕再次啓動,所以我已經使該函數不返回任何東西來解決這個問題,現在我無法啓動第二個線程。令人沮喪!哈哈 –