epoll(エッジトリガー)および非ブロッキングソケットを使用してマルチスレッドサーバーを作成しています。現在、メインスレッドでイベントループを作成して通知を待っていますが、正しく機能
するため、マルチスレッドにするために2つのアプローチから選択する必要があります。
- 各スレッドのイベントループを作成し、サーバーソケットのファイル記述子を追加して、各スレッドで通知を探します。(それは可能ですか?つまり、epollはスレッドセーフですか?)
- 単一のイベントループを作成し、通知を待ちます。通知を受信するたびに、それを処理するスレッドを生成します。
最初の方法を使用した場合、複数のスレッドが同じイベントで通知を受ける可能性はありますか?この状況にどのように対処できますか?
最善のアプローチは何でしょうか?ありがとうございました。