在公司的某个项目中,启动了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);
//