0

マルチスレッド Web サーバー用の C プログラムを設計しています。1 つのスレッドですべてのリクエストを受け入れ、2 番目のスレッドでスレッドプールを使用してそれらを処理したいと考えています。両方のスレッドを並行して実行するのに苦労しています。コードのスキーマを添付しています。

pthread_t entry, scheduler, temp;

pthread_create(&entry, NULL, (void *)&listen, (void *)server_sockfd);
pthread_create(&scheduler, NULL, (void *)&scheduler, (void *)server_sockfd);

pthread_join (entry, NULL);
pthread_join (scheduler, NULL); 

私の最初のスレッドリッスンはクライアントからのすべてのリクエストを受け入れてキューに入れ、2番目のスレッドはそれらをスケジュールします。私の問題は、最初のスレッドが常に実行されていて、2 番目のスレッドが実行されないことです。最初のスレッドには、Whileループで使用されるaccept()システムコールのソケット関数があり、常にリッスンします。

両方のスレッドを並行して実行する方法を教えてください。ありがとうございました。

4

0 に答える 0