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

eclipse调试c++ 线程,主线程显示状态stepping????

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

    本文导语:  eclipse调试c++ 线程,主线程显示状态stepping???? linux 下我开了三个线程,主线程等待三个子线程结束,但三个子线程结束后,主线程不能结束,debug显示stepping,哪位可以解释一下?????? 代码如下: #includ...

eclipse调试c++ 线程,主线程显示状态stepping????

linux 下我开了三个线程,主线程等待三个子线程结束,但三个子线程结束后,主线程不能结束,debug显示stepping,哪位可以解释一下??????

代码如下:

#include"ctypes.h"
#include"cport.h"

#include
#include

using namespace std;

#include
#include
#include
#include
#include

pthread_t id1,id2,id3;

void *write(void *args)
{
    cJobqueue *job=(cJobqueue *)args;
    for(int i=0;ipost(i);
        printf("post id : %d by thread_id : %d n",i,pthread_self());
    }
    
    return NULL;
}

void *write2(void *args)
{
    cJobqueue *job=(cJobqueue *)args;
    for(int i=300;ipost(i);
        printf("post id : %d by thread_id : %d n",i,pthread_self());
    }
    
    return NULL;
}

void *read(void *args)
{
    cJobqueue *job=(cJobqueue *)args;
    int i;
    while(TRUE)
    {
        i=job->getmessage()->id;
        if(i == 356 )
        {
            
            break;
        }
        printf("get job msg i : %dn",i);
    }
    return NULL;
}



int main(){
  int err;
  
  cJobqueue jobq(400);

  err = pthread_create(&id1,NULL,write,(void *)&jobq);
  err = pthread_create(&id2,NULL,write2,(void *)&jobq);
  err = pthread_create(&id3,NULL,read,(void *)&jobq);
  
  if(err != 0){
   printf("can't create thread: %sn",strerror(err));
   return 1;
  }

  
  pthread_join(id1,NULL);
  pthread_join(id2,NULL);
  pthread_join(id3,NULL);
  printf("main thread:n");
  return 0;
}


|
  pthread_join(id1,NULL);
  pthread_join(id2,NULL);
  pthread_join(id3,NULL);
  printf("main thread:n");
  return 0;


你可以调试一下这后面几条语句,如果执行return 0;后主线程还显示stepping,但证明你的主线程阻塞,
极可能阻塞在cJobqueue的析构上,

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












  • 相关文章推荐
  • 请教 Linux 中 eclipse + CDT 调试问题
  • 在那里可以下载一个java的调试工具eclipse?下完马上结贴
  • 如何在eclipse中使用断点来调试程序
  • 有人用Eclipse的吗?如何在其中调试Web程序?
  • eclipse下面调试/运行C程序,怎样输入参数?
  • 在Eclipse里面调试程序,但是没反应。:(
  • eclipse gcc调试出错
  • qt + eclipse CDT不能调试
  • 浅谈Eclipse PDT调试PHP程序
  • 为什么我在http://www.eclipse.org下载了eclipse后,点击eclipse.exe却没有任何效果?
  • 原来在ubuntu装个了个eclipse,可以正常启动,后来又下了个支持php的eclipse...发现php的eclipse无法启动
  • 什么是eclipse,eclipse的意思解析
  • Eclipse配色插件 Eclipse Color Themes
  • Eclipse SOA工具平台 Eclipse STP
  • Eclipse的Fujaba建模插件 Fujaba4Eclipse
  • Eclipse 字体大小控制插件 eclipse-fonts
  • Sonar的Eclipse插件 Sonar4eclipse
  • Eclipse的HTML格式化插件 Eclipse Tidy
  • Eclipse 的 Maven 插件 m2eclipse
  • Eclipse的持续测试插件 CT-Eclipse
  • Eclipse内容导航视图框架 Eclipse CNF
  • Eclipse记事本插件 Eclipse Notepad Plugin
  • Eclipse的Mercurial插件 Mercurial Eclipse
  • Eclipse的Tomcat插件 Eclipse Mongrel
  • Eclipse的Maven集成插件 Eclipse IAM
  • Eclipse的PDF查看插件 Pdf4Eclipse
  • Eclipse的RMI开发插件 RMI Plugin for Eclipse
  • Eclipse面向方面建模插件 A2Eclipse
  • Eclipse可视化编辑器 Eclipse VE


  • 站内导航:


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

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

    浙ICP备11055608号-3