また,更新が滞っている.
久しぶりに
sydに会った.
マイクロスレッドとかコルーチンとかそんな話を聞きました.
参考 :
Pythonジェネレーターで「無重量スレッド」を実装する
μITRONのスレッドなんかそんな感じです.TSSとかじゃないんで,自分でディスパッチャ呼ばなくちゃいけない.RTOSなんで当たり前なんですが.
例えばゲームでマイクロスレッドを使う場合とコールバックを使う場合を比べた場合,マイクロスレッドではスレッド毎のスタック領域を持たなくてはいけないのでメモリ使用量の上限の見積もりが大変そう.コールバックならその場で使うスタック量とそれぞれのオブジェクトの状態を見積もるだけで良いので心臓に優しいような.
とはいえ,世はマルチスレッドの時代.スループットを上げるためハードウェアの並列化が進んでおり(マルチコア,ハイパースレッディング等).その恩恵を受ける手段としてマルチスレッドによる並列性の記述がある(P5の頃はpairingなんてものに夢中でしたがなあ...).しかしOSが提供するスレッドというものは一般的に生成やスイッチングに時間が掛かる.マイクロスレッドみたいに軽い実装で並列性を記述できないもんでしょうか.
ってまだマルチコアもHTもそれ程普及していない現時点じゃ無駄無駄無駄?