Python Subprocess Popen 管道阻塞問題分析解決


http://ju.outofmemory.cn/entry/279026

 

場景:1》不斷播放mp3文件;

2》使用訂閱發布模式保持tcp長連接,從服務器接收信息

 

造成程序hang死,但是具體是1,2哪種造成的,未排查。在Python里啟動命令子進程,慎重。PIPE造成管道阻塞,連帶程序假死,wait()阻塞將輸出信息輸出到管道,communicate()則寫入內存,若內存不夠,則使用文件模式:

p = subprocess.Popen(command,shell=True,stdout=open("process.out", "w"), close_fds=True)
#p.communicate() #放內存
p.wait() #放管道

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM