これに対する答えやチュートリアルがないとは信じがたいですが、どこにも見つけるのに苦労しています!
CでGETリクエストを処理するためにマルチスレッドサーバーを構築する必要があります(そして構築しなければなりません)。満点を得るには、スレッドプールを使用する必要があります。現在、私のメインスレッドは接続を受け入れ、それらを新しいスレッドに渡します。
オンラインで c のスレッド プールの実装をいくつか見つけることができますが、Java のバックグラウンドを持っているため、それらを理解するのは難しいことがわかっています。また、それらはすべてタスク キューを使用しているようです。
listen 呼び出しにキュー接続を指示できることを考えると、これは不要に思えます。私はどこかでacceptがスレッドセーフであることを見ました(POSIXが安全だと言っているのも聞くと言っていますか?)これは賢明なアプローチですか?または、接続が渡されるまで実行を停止するのではなく、各スレッドが受け入れを待機することでオーバーヘッドが高くなりますか?
その場合、Cでこれを行うにはどうすればよいですか? 各スレッドへのポインターと、それらがビジーかどうかを示す値を格納するスレッドセーフなデータ構造を保持する必要があると思いますか? スレッドを再起動して接続を渡す方法はありますか? しかし、これを行う方法がわからず、インターネット上で簡単なチュートリアルを見つけることができません。
アドバイスやチュートリアルへのリンクをいただければ幸いです。
ありがとう