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