1
私はpthreadマルチスレッドコードで作業しており、各スレッドはファイル記述子でread()を呼び出しています。 read()はブロッキング呼び出しであり、データを待機します。しかし、私はそれがデータを待つために3秒間だけ待つことを望む。setTimeOut cに相当しますか?
私はalarm()とhadling SIGALRMを使用すると考えましたが、あるスレッドでアラームを発生させると、すべてのスレッドはそのSIGALRMシグナルを受け取り、すべてが読み込みを放棄します。どうすればいいですか?
selectは非推奨です。 epollは最近人々が使っているものです。 –
ああ、私はこれがうまくいくと思います。私は前にselect()の使用を考えたことはありません。私は多重化以外のものについては決してselect()とは考えていませんでした。 –
@VladLazarenko: "廃止予定"はそのための強力な言葉です。 'epoll'は移植可能ではなく、すぐに' select'が離れることはありません。確かに現代的な選択肢が増えていますが、(IMO)しばしば正しい方向に進むのは難しいことです。 – Mat