我尝试使用 pthread 更快地完成一些任务。我有数千个文件(在 args 中)要处理,我想多次创建少量线程。
这是我的代码:
void callThread(){
int nbt = 0;
pthread_t *vp = (pthread_t*)malloc(sizeof(pthread_t)*NBTHREAD);
for(int i=0;i<args.size();i+=NBTHREAD){
for(int j=0;j<NBTHREAD;j++){
if(i+j<args.size()){
pthread_create(&vp[j],NULL,calcul,&args[i+j]);
nbt++;
}
}
for(int k=0;k<nbt;k++){
if(pthread_join(vp[k], NULL)){
cout<<"ERROR pthread_join()"<<endl;
}
}
}
}
它返回错误,我不知道这是否是解决我的问题的好方法。所有资源都在 args(结构向量)中并且是独立的。
感谢帮助。