マルチスレッドのプログラミング

非同期シグナル

SIGINTSIGIO などの割り込みは、あらゆるスレッドに対して、プロセス外部の何らかの処理が原因で非同期的に発生します。これらの割り込みは、ほかのスレッドから明示的に送られてきたシグナルである場合もあれば、ユーザーによる Control - C キーの入力など、外部の処理を表す場合もあります。

割り込みは、その割り込みを受け取るようにシグナルマスクが設定されているどのスレッドでも処理できます。複数のスレッドが、割り込みを受け取ることができるように設定されている場合は、その中の 1 つのスレッドだけが選択されます。

同じシグナルが複数発生し、1 つのプロセスに送られた場合、それぞれのシグナルを別のスレッドで処理できます。ただし、それらのスレッドがシグナルをマスクしていない場合に限られます。また、すべてのスレッドがマスクしているときは、「保留」の印が付けられ、最初にマスク解除したスレッドによって処理されます。