Top

PeriodicTask クラス


PeriodicTask

概要(Summary)

定期間隔で何らかの処理を実行するクラスの基底クラス (See: here for details).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス.

    ((cite: hotspot/src/share/vm/runtime/task.hpp))
    // A PeriodicTask has the sole purpose of executing its task
    // function with regular intervals.
    // Usage:
    //   PeriodicTask pf(10);
    //   pf.enroll();
    //   ...
    //   pf.disenroll();

    class PeriodicTask: public CHeapObj {

使われ方(Usage)

使用する際には, task() メソッドをオーバーライドしたサブクラスを作ればいい.

    ((cite: hotspot/src/share/vm/runtime/task.hpp))
      // The task to perform at each period
      virtual void task() = 0;

内部構造(Internal structure)

内部的には, WatcherThread によって定期間隔での実行を実現している. 各 PeriodicTask オブジェクトの task() メソッドは以下のパスで呼び出される (See: WatcherThread).

WatcherThread::run()
-> PeriodicTask::real_time_tick()
   -> PeriodicTask::execute_if_pending()
      -> PeriodicTask::task()

詳細(Details)

See: here for details



This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.