util
Class Sampler

java.lang.Object
  extended by util.Sampler
All Implemented Interfaces:
Runnable
Direct Known Subclasses:
StackSampler

public abstract class Sampler
extends Object
implements Runnable

Abstract class for simple sampling daemons.


Constructor Summary
protected Sampler(int intervalMillis)
          Creates a sampler that executes periodically.
 
Method Summary
protected abstract  Statistics dumpSamples()
          Returns the statistics associated with this sampler.
 void run()
           
protected abstract  void sample()
          Takes a sample at the interval.
protected static Sampler start(Sampler sampler)
          Starts sampling thread.
 Statistics stop()
          Stops the sampler and returns the accumulated statistics.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Sampler

protected Sampler(int intervalMillis)
Creates a sampler that executes periodically. The sampler uses randomization so the interval is probabilistic with uniform distribution.

Parameters:
intervalMillis - the expected interval period in milliseconds. If intervalMillis is zero, the sampler will run with an infinite interval (i.e., no-op).
Method Detail

sample

protected abstract void sample()
Takes a sample at the interval.


dumpSamples

protected abstract Statistics dumpSamples()
Returns the statistics associated with this sampler.

Returns:
statistics

run

public void run()
Specified by:
run in interface Runnable

stop

public Statistics stop()
Stops the sampler and returns the accumulated statistics.

Returns:
the accumulated statistics or null if the interval is infinite

start

protected static final Sampler start(Sampler sampler)
Starts sampling thread. Subclasses should use this method to start sampling.

Returns:
a sampler