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

一个有深度的问题(对信号量操作不熟者请勿进)

    来源: 互联网  发布时间:2015-04-17

    本文导语:  环境是Red Hat Linux release 7.2 (Enigma)   Kernel 2.4.7-10 on an i686 程序为多线程程序,当大话务测试时,一段时间后会打印出调用semop出错 errno=ERANGE ,我追踪信号量的值,发现的确是信号量的值已经大于系统规定的最大值SEMVMX=...


环境是Red Hat Linux release 7.2 (Enigma)   Kernel 2.4.7-10 on an i686
程序为多线程程序,当大话务测试时,一段时间后会打印出调用semop出错 errno=ERANGE ,我追踪信号量的值,发现的确是信号量的值已经大于系统规定的最大值SEMVMX=32767。表面上看,应该是“释放”操作多过了“占用”操作。
但是在程序中,我检查了代码,“占用”和“释放”都是成对出现的,并且如果不是成对出现,那么就应该会有死锁情况发生。

不知有哪位高手遇到过这种情况?

|
你确定你的程序流程正确吗?或者你的post和wait操作不同步。 我保证不是semaphore的问题,看看你的代码吧

|
请把源代码email 到 dobig@tom.com  。我来调试一下。

|
Is it possible that there is some jump or return statement between some pair of 占用 and 释放.

|
同意gamedragon的说法,建议仔细查查。

|
代码也给我发一份,调一下。Sap1975@bj1860.net

—————————————————————————————————
┏━★━━◆━━★━┓ 
♂欢|◢CSDN◣|使♂        ▲自由保存帖子,浏览,关注检测
┃迎|◥论坛助手◤|用┃        ▲完善的CSDN客户端工具
┗━☆━━◇━━━☆┛       ▲自动添加签名......

让你更快,更爽,更方便地上CSDN...
http://www.csdn.net/expert/topic/573/573604.xml
http://www.chinaok.net/csdn/csdn.zip

|
你确定你的程序流程正确吗?或者你的post和wait操作不同步。 我保证不是semaphore的问题,看看你的代码吧

|
我碰到过一个类似的问题,一个线程A读队列时,若为空就休眠,另一个线程B写队列时就唤醒前一个线程。开始我给队列空间50000个(循环队列),我以为B不可能将队列写满,因为A也在不断的读,结果,当B写的很快时,由于唤醒操作本身实现的问题(LinuxThread本身问题也很大)导致队列一下子就满了。
你看看可能是不是这个问题!

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • 请问下,TCQ/NCQ的队列深度是硬盘决定的吧?如何获取深度值呢?谢谢!
  • 深入JAVA对象深度克隆的详解
  • jQuery 记录滚动深度的插件 Scroll Depth
  • 深度理解try{}cathc(){}
  • 深度游戏中心
  • 50分求与【Linux 服务器 配置维护,网站架设】相关深度中等偏下的经典书籍,荐者有分!
  • 迅速确定php多维数组的深度的方法
  • 在Solaris上显示xpm格式的图片,为什么显示的效果好象是位图深度不够似的?
  • 深度复制是否会内存泄漏?
  • C语言实现计算树的深度的方法
  • 快来救命啊。EJB调用EJB问题。深度郁闷,高分相送。
  • 请教:linux下的有名管道 fifo深度多大?
  • C++深度优先搜索的实现方法
  • 深度分析mysql GROUP BY 与 ORDER BY
  • 解析JAVA深度克隆与浅度克隆的区别详解
  • Java Web项目前端规范(采用命名空间使js深度解耦合)
  • 深度分析正则(pcre)最大回溯/递归限制
  • 纯C语言:检索与周游广度深度遍历源码分享
  • SQLSERVER的非聚集索引结构深度理解
  • 深度揭露Oracle索引使用中的限制


  • 站内导航:


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

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

    浙ICP备11055608号-3