マイクロスレッド基本おさらい
【マイクロスレッドとは】
ユーザープログラムの中で特定関数を明示的に呼び出すことによってコンテキストを切り替え、それ以外では切り替わらないという強度にノンプリエンプティブなディスパッチメカニズム(によって実現されるスレッド)。詳細な解説
【特徴】
- exec(), suspend(), resume()という3関数だけで実現可能
- コンテキスト切り替えがちょー軽い
【長所】
- コンテキスト切り替えがちょー軽い
- 毎秒10万回のコンテキストスイッチングとか普通に可能。
- マイクロスレッド同士の排他制御もちょー軽い
- exec(), suspend(), resume()呼び出しを含まずに完結する資源アクセスについては一切不要。
- 移植がちょー簡単
- CPUアーキテクチャ依存箇所はexec(), suspend(), resume()だけ。
【弱点】
- リアルタイム応答性能が低い
- exec()もsuspend()もresume()も呼ばれない期間はマイクロスレッド間のコンテキストスイッチングを全く起こせないので、、
- スレッド終了時のオブジェクトの後始末(デストラクタ呼び出し)に一工夫要る
- 自動オブジェクトの後始末さえ局面によっては一工夫要る*1。