pthread を使用して、いくつかのタスクをより高速に実行しようとしました。処理するファイルが数千ありますが、少数のスレッドを何度も作成したいと考えています。
これが私のコードです:
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 (構造体のベクトル) にあり、独立しています。
手伝ってくれてありがとう。