複数のシリアルポートからデータを読み取っています。現在私は、ファイル記述子情報に基づいてスレッドを比較して起動させるカスタムシグナルハンドラ(sa_handlerを設定)を使用しています。私は、独自のシグナルハンドラを持つ個々のスレッドを持つ方法を探していました。この点に関して、selectシステムコールが使用されることがわかりました。スレッド内のSelect()システムコール?
今、私は次のような質問している:
- 私はシリアルポートを監視するためにselectシステムコールを入れないところ私は、スレッド(Qtの)を使用していますか?
- selectシステムコールスレッドは安全ですか?
- GUIの更新など、アプリで多くのことが起こっているため、CPUを集中的に使用していますか?
これらの質問がばかげている場合は、気にしないでください。私はこのようなメカニズムをシリアル通信に使用したことはありません。
ガード情報! 1つの質問スレッドは、ソケットfdが読み取り/書き込み操作を行う準備ができている場合に、起動する必要があることをどのように知っていますか?カーネルはスレッドにいくつかの干渉を与えますか? –
@SumitTrehanカーネルは、スレッドを実行可能状態にするとき、つまりスレッドがCPU時間を取得するとすぐに実行されるので、スレッドを起動します。 – Medicine