1
我有三個Python線程共享ASCII數據。第一個線程以極快的速度從串口讀取串行數據。然後,我解析並將這些數據傳遞給它寫入的套接字。另外,來自串行數據的一些數據被寫入XML文件。我意識到全球解釋器鎖定及其侷限性。我需要在1/10秒內完成所有這些操作。通過利用我在線程之間共享的全局值,我看到大量的CPU使用率和延遲。我不認爲我可以在Python中使用事件,因爲我會在其他情況下使用它。如何在數據線程之間傳遞數據?
如何在同步問題中在這些線程之間共享數據,而不會延遲和CPU在Python中的使用?
謝謝。我繼續前進,將我使用的全局變量轉換爲最大大小爲1的線程化FIFO隊列。這使我只能在一個線程安全的環境中一次交出一個項目。另外,我有其他線程執行得太快。所以我放慢了速度,並使用隊列來處理時間敏感的線程,以減少CPU使用率。事實證明,GIL會嚴重破壞我的CPU。 – Speakeasys