私のサーバーはノンブロッキングソケット多重化を使用しています。着信接続を受信して入力を処理するために 1 つのスレッドを使用し、ソケットを介してデータを送信するために別のスレッドを使用したいと考えています。次のようになります。
reader_worker(...)
{
...
select(fd_max+1, &read_set, NULL, NULL, NULL);
...
}
writer_worker(...)
{
...
select(fd_max+1, NULL, &write_set, NULL, NULL);
...
}
着信接続を見逃したくないので、別々のスレッドで送受信する方がよいと想像できます。read_set と write_set にある可能性のあるソケットをロックする必要がありますか? これは正しいアプローチですか、それともこの方法ではパフォーマンスが向上しませんか?