定期間隔で何らかの処理を実行するクラスの基底クラス (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 {
使用する際には, task() メソッドをオーバーライドしたサブクラスを作ればいい.
((cite: hotspot/src/share/vm/runtime/task.hpp))
// The task to perform at each period
virtual void task() = 0;
内部的には, WatcherThread によって定期間隔での実行を実現している. 各 PeriodicTask オブジェクトの task() メソッドは以下のパスで呼び出される (See: WatcherThread).
WatcherThread::run() -> PeriodicTask::real_time_tick() -> PeriodicTask::execute_if_pending() -> PeriodicTask::task()
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.