[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 18:44 / Filesize : 126 KB / Number-of Response : 339
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

タスクシステム総合スレ part4



49 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 00:31:46 ID:9DTLfrVW]
やねう先生の近代的なタスクの話を読んでみたけど、
boost::shared_ptrとかunordered_mapとか実装が近代的というだけで、
やってることは古典的だよね(そういう趣旨だから当然だけど)。
ってことで、Mix-in好きのオレが近代的なタスクを考えてみた。

古典的タスクシステムをupdate巡回リストであると仮定すると、
タスクとはすなわちフレームをまたいだ継続的処理の抽象化だと考えることができる。
継続処理を今風に考えれば以下の3種類に分かれるはずで、
どれが良いかはケースバイケースで異なる。

//(1)毎フレーム呼ばれる古き良きタスク(負荷が小さい。排他処理不要)
class PeriodicalTask {
public:
  virtual void update() = 0;
};

//(2)コルーチン動作するタスク(負荷は中程度。排他処理不要)
class CooperativeTask {
public:
  CooperativeTask(size_t stackSize);
  virtual int call() = 0;
};

//(3)ネイティブスレッド動作するタスク(負荷が大きい。排他処理必須)
class PreemptiveTask {
public:
  PreemptiveTask(size_t stackSize);
  virtual int start() = 0;
};






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<126KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef