linux下main thread如何使用pthread_join等待子线程结束后再退出
我的程序流程:main thread 创建10个thread,然后每个子thread开始计数++,等到数到20000后子thread停止。然后在mainthread内进行平均thread计算时间统计。但是统计函数应该在什么位置才能保证所有的子thread都执行完毕在统计呢?
thread_join 应该怎么用呢??
int main(int argc, char * argv[])
{
pthread_t dbthread[10];
int i;
int rslt = 1;
int threadid[10]={0,1,2,3,4,5,6,7,8,9};
db_init(); //初始化一些全局数据
for (i = 0; i<10 ; i++)
{
//创建10个子线程
rslt = pthread_create(&dbthread[i], NULL,db_thread_entry, &threadid[i]);
if(rslt)
{
CDB_PTTRACE_TO_FILE("create [%d] thread FAILED\n", i);
return 0;
}
}
//join10个thread
for(i=0;i<10;i++)
{
//need some join-thread op;
pthread_join(&dbthread[i], NULL);
}
summary_speed(); //统计
return 0;
}