1

シングル スレッド プロセスが現在実行中で、カーネルによってシグナルが検出された場合、カーネルは単に現在の実行を停止し、命令ポインターの現在のアドレス空間を保存して、シグナル ハンドラーを実行します。言い換えれば、シグナルハンドラを実行するためにプログラムによって使用されていたのと同じスレッドを使用しますか? プロセスがマルチスレッドの場合はどうなりますか? プログラムに 3 つのスレッドがあり、1 つのスレッドがたとえば SIGUSR1 のシグナル ハンドラーを登録する場合、カーネルはシグナル ハンドラーを登録したスレッドを中断し、残りの 2 つのスレッドは引き続き実行されますか?

4

0 に答える 0