对已经detach的线程采用pthread_kill检测线程是否存活时会有问题

在某项目中,32个线程处理任务,部分线程因无任务提前退出并detach。任务完成后,主线程通过pthread_kill检查线程存活,此操作在Linux环境下引发程序崩溃,但在AIX系统上正常运行。问题可能源于detach后的线程状态处理差异。
摘要由CSDN通过智能技术生成

在公司的某个项目中,启动了32个线程进行任务处理。其中只有3个线程真正执行了任务,其他线程都因没有任务直接退出了。在所有任务处理完成后,主线程使用phtread_kill进行线程存活检查时在Linux下会导致程序崩溃,但是在AIX下则无任何问题。(线程在执行函数中pthread_detach了)


/*检查所有线程是否已经停止,对于没有停止的发送退出消息*/

// for(i = 0; i < BATCH_CHGPWD_THREADS; ++i)
// {
// nThreadID = pTaskSet->ThreadIDs[i];
// if(nThreadID <= 0)
// {
// log_str(NULL, LOG_DEBUG, "%s:%d 第[%d]个线程ID为空,继续检查下一个线程",
// __FUNCTION__, __LINE__, i);
//
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值