当前位置:  技术问答>linux和unix

大家建议一下这个线程相关现象的解决方案吧

    来源: 互联网  发布时间:2016-05-06

    本文导语:  1. 结果: 约5个小时后,进程异常退出; 2. 测试过程: 一个进程里开了十几个线程,利用消息队列在线程间进行大量的密集通信; 3. 分析: 3.1 可以排除的原因: 堆分配后没有释放 3.2 怀疑的原因: 某线程在数...

1. 结果:
约5个小时后,进程异常退出;
2. 测试过程:
一个进程里开了十几个线程,利用消息队列在线程间进行大量的密集通信;
3. 分析:
3.1 可以排除的原因:
堆分配后没有释放
3.2 怀疑的原因:
某线程在数组操作时越界,影响到其他线程并使其退出(因为注释频繁调用system API的代码后,进程基本上正常了);
只要任意线程中有一个bug,在这样的测试中,进程便会异常退出;
4. 采取的措施:
4.1 仔细检查了代码;
4.2 尝试多次注释了一些代码;
4.3 因为大部分的线程之间有某些依赖,所以不方便把他们分开成独立进程;
4.4 反复调用了某些线程的某些相关接口;


|
让程序退出的时候生成core文件,然后用gdb分析一下倒底在哪一个系统调用的时候死了, 后面再做进一步的分析.

|
有些统调用和C库接口就是不可重入的,这就是为什么有进程安全,线程安全一说的原因。

|

2楼的办法实在。

|
很可能是消息队列引起的。
如果进行频繁的数据通信,还是使用信号进行同步比较好,消息队列效率是很低的。



|
只要任意线程中有一个bug,在这样的测试中,进程便会异常退出

|
有没有可能存在重入问题,临界区数据没有保护好的?

我认为未必是系统API的问题。

|


数组越界不是有很多工具就可以查吗? 可以先试一下看看。

另外线程之间可以不用消息队列啊。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求教,一个"项目管理"的项目.有建议给分! iis7站长之家
  • 这是我们专业下学期的课程表,前辈进来看看建议建议!
  • 谁对JBuilder4比较了解,有什么好书可以介绍,或有什么建议
  • 希望你给点建议
  • 各位高手请给点建议!
  • 求skb开发的建议!
  • 找实习啦,望在职人士给个建议
  • 哪位仁兄做过多媒体,给我一点建议,答者有分!
  • 强烈建议将linux/Unix栏目放到“软件开发者”大类里面来。----Unix开发的人助威支持!!!
  • 请在这里发表您对本区的建议,意见。我们会尽力解决!(技术方面的问题请不要放进来)
  • 给点建议吧,各位
  • 我想看看有关Linux和Unix的源码,有什么好的建议
  • 关于论坛提问的一点建议
  • 准备学JAVA给点建议????
  • 给点学java的建议
  • 提问的建议
  • 关于网络通讯,请给个建议
  • 诸位帮帮忙吧,给点建议都有分!
  • 求教,一个"项目管理"的项目.有建议给分!
  • 我公司想上OA软件,谁能给我点好建议吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3