linux下main thread如何使用pthread_join等待子线程结束后再退出
16lz
2021-01-22
我的程序流程:mainthread创建10个thread,然后每个子thread开始计数++,等到数到20000后子thread停止。然后在mainthread内进行平均thread计算时间统计。但是统计函数应该在什么位置才能保证所有的子thread都执行完毕在统计呢?
thread_join应该怎么用呢??
intmain(intargc,char*argv[])
{
pthread_tdbthread[10];
inti;
intrslt=1;
intthreadid[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]threadFAILED\n",i);
return0;
}
}
//join10个thread
for(i=0;i<10;i++)
{
//needsomejoin-threadop;
pthread_join(&dbthread[i],NULL);
}
summary_speed();//统计
return0;
}
pthread_join就能保证
thread_join应该怎么用呢??
intmain(intargc,char*argv[])
{
pthread_tdbthread[10];
inti;
intrslt=1;
intthreadid[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]threadFAILED\n",i);
return0;
}
}
//join10个thread
for(i=0;i<10;i++)
{
//needsomejoin-threadop;
pthread_join(&dbthread[i],NULL);
}
summary_speed();//统计
return0;
}
6 个解决方案
#1
pthread_join就能保证
更多相关文章
- cp dir recursivly不包括2个子目录
- linux c 多进程socket程序,如何实现父进程监听,子进程接受连接(注
- 彻底理解初始化参数SERVICE_NAMES和客户端TNS中的SERVICE_NAME
- identity_insert和表初始化脚本
- 【Linux】Mysql初始化root密码和允许远程访问
- Java类的初始化顺序
- JAVA-初步认识-第十章-对象的初始化过程
- Java虚拟机:类的初始化
- [置顶] Java中的类装载和初始化模块