多线程退出异常

jiangpingzhan 2011-03-02 10:03:07
出现以下异常

thread exiting, not yet detached (count=0)
thread exiting, not yet detached (count=1)

native thread exited without detaching


情况是这样的

变量flag 标记线程是否继续运行

在线程a 启动 线程b .

退出线程将 flag 设置成false

出现以上异常

线程a 与 b .退出条件
while(flag ==1)



线程a


pthread_attr_t dataTattr;
pthread_t dataThread;
memset(&dataTattr, 0, sizeof(pthread_t));
memset(&dataThread, 0, sizeof(pthread_t));
int err;
err = pthread_attr_init (&dataTattr);
err = pthread_attr_setdetachstate (&dataTattr,PTHREAD_CREATE_DETACHED);
err = pthread_create(&dataThread, &dataTattr,sendDataThread,&sk);
if(err != 0)
{
__android_log_print(ANDROID_LOG_ERROR,"Tag", "pthread_create(&dataThread :%d", err);
}
else
{
__android_log_print(ANDROID_LOG_ERROR,"Tag", "ppthread_create(&dataThread :%d", err);
}


退出代码
pthread_exit((void *)0);

...全文
163 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangpingzhan 2011-08-08
  • 打赏
  • 举报
回复
结贴给分. 没有 DetachCurrentThread(); 的原因
kusey 2011-03-03
  • 打赏
  • 举报
回复
memset(&dataTattr, 0, sizeof(pthread_t));
-------------------------------------------
memset(&dataTattr, 0, sizeof(pthread_attr_t));

别的没看懂 ...
赵4老师 2011-03-03
  • 打赏
  • 举报
回复
我一般退出线程都是在创建线程的主进程中调用exit函数。
有人可能会说这样会导致这样那样的问题,但我会反驳说可能会导致比突然停电更严重的问题吗?
所以我的哲学就是“与其费劲优雅的退出,不如费劲优雅的从上次鲁莽退出的烂摊子上正常重启!”

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧