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

紧急求教!多线程+段错误!

    来源: 互联网  发布时间:2016-09-02

    本文导语:  本帖最后由 rayeaster 于 2010-05-11 17:52:46 编辑 程序如下:    子线程A:从一个文件夹中不断读取文件,创建一个工作队列    子线程集合B: 包含若干个线程,试图从上述工作队列中竞争取出工作队列的第一个文件进行...

本帖最后由 rayeaster 于 2010-05-11 17:52:46 编辑
程序如下:
   子线程A:从一个文件夹中不断读取文件,创建一个工作队列
   子线程集合B: 包含若干个线程,试图从上述工作队列中竞争取出工作队列的第一个文件进行处理。
 问题:
   每次集合B中的一个线程取工作队列的第一个文件后试图从工作队列里删掉这个文件,总是会删不掉。而且总会出现段错误。
   P.S.,其中mutex定义在主线程的中,是全局变量,这样A和B(不在同一个文件里)都能用这个mutex来锁定工作队;
        工作队列我自己写的一个简单容器,类似链表,pop_front()删除并返回第一个元素,push_back()插入末尾

大家帮我看看我的这个程序哪里有问题?或者该怎么设计?

 //集合B中的工作线程取文件的函数
void B::reload(){
     extern pthread_mutex_t mutex;
     pthread_mutex_lock(&mutex);

     if(NULL != this->filesource->getDirLoad().first){//getDirLoad()返回的就是工作队列
        this->MediatorWorkLoad=this->filesource->getDirLoad().pop_front();
        coutcloseSourceDir();//先关闭,等待新的文件进入文件夹
      sleep(refreshPeriod);
      this->openSourceDir();//重新打开
      ptr=readdir(this->sourceDir);      
    }
   }//end while(MediationRunning)
  }//end try
  catch (exception e){
  throw runtime_error("in/out file operations error");
  }
  pthread_exit(NULL);
}

|
这样比较永远也不会相等 if((tmp1 != filename) && (tmp2 != filename)){
比较字符串应该是这样   if(strcmp(tmp1, filename) && strcmp(tmp2, filename)){

    
 
 

您可能感兴趣的文章:

  • linux的线程是由进程模拟的吗?求教。
  • 求教多线程模拟最高响应比算法!
  • 求教JAVA中的延时函数!不是用于线程中的!
  • 求教,关于pthread_join 以及线程之间关系的问题
  • 求教 Linux多个线程 可不可以同时调用一个函数
  • 求教:这个线程为什么停不下来?
  • [求教]关于java的线程问题,谢谢帮忙 问题如下: ...........
  • 有关线程的一些数据结构及函数求教。。
  • 在linux 平台下写了 个线程 模拟操作系统 读者写者问题 有错误 求教
  • 新手求教QT4 Qthread线程问题!求帮忙看看code谢谢!
  • 求教:文件打包移植错误发生排序错误,小弟努力送分送分啦!59~~~
  • 用rose试图生成java代码,提示如下错误,求教高手!
  • 求教,安装ddd时出现错误
  • [求教]:NFS的连接问题.做NFS时报连接错误,据称是portmap问题,但...
  • 一个链接错误,实在搞不定,诚心求教
  • 做一个ejb后报以下错误:求教!
  • 紧急求教: LINUX 内核编译错误 !!!!!!!!!!
  • 菜鸟求教,在线等待:case语句后报双分号错误
  • 求教!写共享内存使用strcpy会出现段错误。用的是LINUX虚拟机
  • 求教EJB客户端错误:javax.naming.NoInitialContextException?
  • 求教JSP访问ACCESS数据库的SQL语句错误
  • linux下的socket 编译段错误是怎么回事,求教
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求教求教,shell问题...各位大哥,帮忙下
  • 400分求教: 求教一简单问题,现场给分
  • 高分求教:如何将JAVA文件(.class)制作成可执行文件(.exe),求教方法或工具推荐
  • 急!!求教linux命令的使用:统计出/bin目录中文件的个数,追加到文件filea的结尾
  • 求教:在UNIX中查找包含指定文字的文件名
  • 小白菜求教linux大鸟
  • JDK1.3.1初级问题求教
  • 初学者有问题求教!
  • 各路高手请进!高分求教,非常着急!
  • 高分求教的问题(关于SendMail设置)
  • 简单问题:从sun网站上当了个jdk1.4b3,bin后缀,求教怎么安装
  • 求教:知道当前时间,如何得到N天前的时间 ?
  • 求教:switch(condition)中的condition 必须为整型吗?
  • Linux远程访问的问题,高分求教:)
  • 求教:在Linux下如何做代理服务器?
  • 紧急求教!究竟Java里面有没有相当于C++的CPOINT的类阿?
  • 求教JAVA中XML解析问题
  • 50分求教,在JSP里如何将String转换成Double
  • 我刚装好,是不是需要配制环境变量?求教。
  • 400分求教JAVA皮肤的问题


  • 站内导航:


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

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

    浙ICP备11055608号-3