- C言語なら俺に聞け! Part 135©2ch.net
945 :デフォルトの名無しさん[sage]:2016/06/27(月) 20:47:01.77 ID:E1I14SZR - >>943
1つの実装方法として、タイマー割込み発生用のサーバスレッドを自作し、 そのスレッドから、各スレッドのシグナル処理関数(シグナルハンドラ)をCALLする、 という方法があります。スレッドを区別するため、スレッドユニークな何らかの値 (スレッド固有のデータ領域を示すポインタなど)を引数として追加しておくといいでしょう。 簡単に言えば、シグナル処理をOSではなく、自作のスレッドにやらせる、ということですね。 ただし、排他処理には十分に注意する必要があるなど、かなり複雑な実装となりますので、 スレッドのタイムアウト処理のシンプルな実装方法としては、>>944 の方法が 推奨されると思われます。 C言語の話からは微妙に外れますので、マルチスレッドプログラミング相談室スレの方が、 いろいろな意見がもらえるかも?
|