社区
C++ 语言
帖子详情
关于一个多线程调用popen 的问题
qwedsazzcc
2014-09-11 02:06:33
一个程序,linux下用popen调用一个shell 去执行 ffmpeg,起初起10个线程不停的执行,几个小时没问题,但是50个线程,运行一段时间会出现程序卡住,不往下走,应该是类似线程死锁,但过了一会 ,10分钟左右,程序又会正常往下走。难道popen 或者ffmpeg会出现线程死锁的问题?如果不是 ,那应该是什么卡住程序。有大神能帮忙吗?
ps:100个线程 但是在popen这段加上互斥锁后,不在出现这个问题。
...全文
857
6
打赏
收藏
关于一个多线程调用popen 的问题
一个程序,linux下用popen调用一个shell 去执行 ffmpeg,起初起10个线程不停的执行,几个小时没问题,但是50个线程,运行一段时间会出现程序卡住,不往下走,应该是类似线程死锁,但过了一会 ,10分钟左右,程序又会正常往下走。难道popen 或者ffmpeg会出现线程死锁的问题?如果不是 ,那应该是什么卡住程序。有大神能帮忙吗? ps:100个线程 但是在popen这段加上互斥锁后,不在出现这个问题。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jiuchang
2014-09-12
打赏
举报
回复
tty_write_lock看名字应该是向标准输出写内容时等待,popen的结果是输出到标准输出的 n_write_lock不清楚用途
码工许师傅
2014-09-12
打赏
举报
回复
ffmpeg通常是CPU密集的,起三五个就很耗CPU了,楼主为什么要同时起那么多? 楼主用队列缓冲一下ffmpeg请求,后台只留三五个线程执行ffmpeg任务(消费者); 请求来了只管往队列上挂(生产者)。
qwedsazzcc
2014-09-11
打赏
举报
回复
引用 3 楼 zhao4zhong1 的回复:
建议楼主改为多进程。
我只是多线程popen ,用shell来执行ffmpeg ,按理说是多进程来执行ffmpeg。
赵4老师
2014-09-11
打赏
举报
回复
建议楼主改为多进程。
qwedsazzcc
2014-09-11
打赏
举报
回复
卡死的时候 ffmpeg 在系统监测里看 等候频道是tty_write_lock 还有一个ffmpeg是n_write_lock 有人知道这是什么意思不?
jiuchang
2014-09-11
打赏
举报
回复
如果能恢复,就不是程序死锁,应该是类似资源竞争的东西导致系统变慢 可能和ffmpeg有关,具体不清楚
重新实现
popen
和system函数
重写系统提供的system和
popen
函数,在fork之后关闭所有的从3到最大的文件描述符
跨平台实现异步执行命令,类似
popen
,可同时读写
跨平台实现异步执行命令,类似
popen
,可同时读写
linux
popen
函数
linux
popen
函数linux
popen
函数linux
popen
函数linux
popen
函数
tcps.zip_linux 远程控制_
popen
用pipe实现远程控制系统中的
popen
函数功能。参数f_des[0]从管道中读数据,f_des[1]向管道中写数据。通过管道实现父子进程间的通信。服务器可以向多个用户提供服务。
python实现
多线程
的方式及多条命令并发执行
主要为大家详细介绍了python实现
多线程
的方式及多条命令并发执行,感兴趣的小伙伴们可以参考一下
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章