Figure 10: A timer bean that contains a Thread object

public class TimerBean implements Runnable {
    private Thread runner;              
    private static int theNumber;       
    private volatile int theInterval;   
    private int theCount;               
    private Vector listeners;           
                                        
    private volatile boolean suspended;     
    private boolean firstTime;
    private boolean running = true;

    public TimerBean() {                
        this(++theNumber,1000);         
                                        
    }
    public 
    TimerBean(int number, int interval) {
        theNumber = number;             
        theInterval = interval;         
        theCount = 0;                   
        listeners = new Vector();
        suspended = true;
        firstTime = true;
        runner = new Thread(this);      
        runner.setDaemon(true);         
    }
}