作者energyaxd (君)
看板Python
標題[問題] 同時監控subprocess的方法?
時間Fri Oct 30 13:57:36 2020
請教各位一下
我有一個主程序
開了很多個subprocess
我想要在子程序結束前同時監控他們的狀況
可是用了readline如果沒有東西
就會block住 一定要等到有讀到東西
要怎麼解決這種問題
搞了好久還是找不到解決方法
還是我根本搞錯方向了...
-----
Sent from JPTT on my iPhone
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.78.206 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1604037458.A.D75.html
1F:推 TuCH: 你要不要給個程式碼 10/30 14:14
2F:推 lohas1019: 用try except 去處理試試看? 10/30 14:18
3F:推 legendmtg: 你要用readline讀什麼? 10/30 14:27
5F:→ energyaxd: 如果子程序中先print(a)等五秒再print(b) 但主程序中都 10/30 14:42
6F:→ energyaxd: 是同時跳出 還有前一個subprocess還沒回應前readline 10/30 14:42
7F:→ energyaxd: 會讓其他程序在這邊等他才看的到結果 10/30 14:42
8F:推 s0914714: 可以把readline的msg丟到Queue 然後去Queue裡面取 10/30 20:08
9F:→ ToastBen: ...Genius 10/30 22:31
11F:→ energyaxd: 抱歉 手機PTT貼圖比較方便... 10/30 23:31
12F:→ energyaxd: 更新一下..或許有人有類似問題,目前每個subprocess用 11/04 10:48
13F:→ energyaxd: 一個thread讀取stdout,如果是執行python要注意啟動參 11/04 10:48
14F:→ energyaxd: 數加-u,取消buffer,但太多線程比較吃資源好像不是最 11/04 10:48
15F:→ energyaxd: 佳解 11/04 10:48
16F:→ s860134: select, multiplexing 11/05 09:38