タグ

ブックマーク / www.csg.is.titech.ac.jp/~chiba (1)

  • Lecture Notes

    4-2 Non-blocking I/O 前回の課題で実装したスレッド・ライブラリは、暗黙のうちにスレッドを切り替える機能をもたず、プログラムの中で明示的に ThreadYield() を呼ばなければならなかった。 しかしながら、ある種の状況の下では、おおむね常にスレッドを切り替えてよい場合がある。 その代表的なものは I/O の実行待ちである。 例えばあるスレッドがコンソールからの入力を待っているとすると、その間、そのスレッドは何もやることがなく、プロセッサが遊んでしまう (したがって OS は、プロセス切り替えをおこない、他のプロセスを実行してしまう)。 このような状態を、スレッドがブロック (block) されている、という。 そのような間は、明らかにスレッドを切り替えて、他のスレッドを動かした方が効率がよい。 今回は、スレッド・ライブラリに、ストリーム(ファイル)を読むための関数

    hibariya
    hibariya 2008/08/13
  • 1