スレッドを作成するために Linux で pthread ライブラリを使用していますが、そのようなアプリケーションでのシグナル処理について 2 つの質問があります。
シグナル ハンドラーはプロセス全体に適用されることを知っています。つまり、プロセスにハンドラーを設定すると、すべてのスレッドがこのシグナル ハンドラーを持つことになります。またpthread_kill
、特定のスレッドにシグナルを送信する機能があることも知っています。
kill
私が理解している限り、たとえばシェルコマンドを使用してシグナルを送信することについて質問があります。たとえば、これを使用してプロセスにkill -INT PID
送信します。 .SIGINT
PID
最初の質問です。このシグナルがどのスレッドに配信されるかは保証できません。シグナル マスクにこのシグナルが含まれていない 1 つのスレッドにのみ配信されると確信できますか?
もしそうなら、「SIGFPE」、「SIGSEGV」などの特定のスレッドに配信されるいくつかのシグナルはどうkill
ですか?シェルコマンドを使用してそれらを送信すると、それらはランダムスレッドに配信されますか、それとも他のスレッドを作成したスレッドに配信されますか?