免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2038 | 回复: 5
打印 上一主题 下一主题

[C] 怪了!一周了,没找到原因。只能到这里求助了! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-13 15:34 |只看该作者 |倒序浏览
本帖最后由 q_T_p 于 2011-01-13 17:35 编辑

情况是这样的:
我有个进程,包括多个线程,每个线程都有屏幕打印信息。这个进程运行一段时间后,就没有任何输出了(多个线程同时停住了,这些线程之间没有公用的锁),一般几分钟后进程恢复输出。而系统的其他进程正常运行。

确定不是屏幕缓冲问题,也不是系统时钟问题。

大家留下些看法吧,谢谢!


补充:我的每个线程都会定期输出日志信息到屏幕。一些线程是sleep(1)后输出的,一些线程是select 监控描述符事件后输出的,一些线程是网络事件触发输出的。可以肯定的是每个线程最多2s内就有信息输出到屏幕。                   程序运行后前一个小时的样子都很正常,各线程无序输出到屏幕,然后突然所有线程都没有了输出信息,此时系统的其他进程正常输出信息,然后不定长时间(几分钟至几十分钟)程序各线程恢复输

根据屏幕输出,线程停住前后:几行简单的代码,中间没有任何互斥量和其他需要等待的赋值语句,赋值语句1和赋值语句2的执行时间相差几分钟。



问题找到了:CRT里面没有将进程启动到后台,一段时间后CRT突发事件弹出提示框,CRT处理进程停住,一段时间后,进程输出的缓冲区满,所有用printf的线程阻塞。。。。。。。。。。so...

论坛徽章:
0
2 [报告]
发表于 2011-01-13 15:43 |只看该作者
说的太含糊了,呵呵。有日志系统没有?加些日志看阻塞到那个函数下了?

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
3 [报告]
发表于 2011-01-13 16:09 |只看该作者
可能终端与主机之间网络问题

论坛徽章:
0
4 [报告]
发表于 2011-01-13 16:21 |只看该作者
一般是Socket 缓冲满!!!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2011-01-13 18:07 |只看该作者
用 SecureCRT 的人建议趁早改 screen 吧。

论坛徽章:
0
6 [报告]
发表于 2011-01-13 18:32 |只看该作者
有道理,输出到文本日志看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP