CURL を使用して Web に情報を投稿する C アプリケーションを作成する必要があります。アプリケーションは、最大で N 個 (10 個としましょう) の要求を並行して実行する必要があります。を使用する特定のスレッドではなく、どのスレッドも終了するのを待つにはどうすればよいですかpthread_join()
。
pthread_cond_wait について読みましたが、ほとんどの例は、制御スレッド (メイン) がワーカー スレッドを起動する方法です。正反対のことが必要です-ワーカースレッドは、終了する前に親スレッドにシグナル/ウェイクアップできる必要があります。
更新:実際には、マネージャー スレッドをスリープ状態にする方法が必要です。ワーカー スレッドがジョブを終了したら、マネージャー スレッドを起動して別のジョブを与える必要があります。スレッドが終了して新しいスレッドがジョブ用に作成されるか、スレッド プールが使用されるかは問題ではありません。ジョブが終了したことをマネージャーに知らせる方法がまだ必要です。
この提案を受け取らないことを願っています:
while(asleep){
for(i = 0; i< threadCount; i++){
pthread_mutex_lock(mutex);
if(threads[i] == IDLE_STATE)
startNewJob();
pthread_mutex_unlock(mutex);
usleep(100*1000);
}
}