timer - How to stop a TimerTask in Java -


i have implemented timertask in java , need stop thread after period of time:

        ....          timer = new timer(); // @ line new thread created          timertask timertask = new timertask() {              int tweetcounter = 0;             string message;              @override             public void run() {                 try {                     while ((message = reader.readline()) != null && (tweetcounter < 100)) {                         bucket.add(message);                         tweetcounter++;                          out.println("number of messages: " + tweetcounter);                         out.println("nano time: " + system.nanotime());                      }                 } catch (ioexception e) {                     e.printstacktrace();                 }             }         };         timer.schedule(timertask, 30000);         ...... 

at point try :

    timertask.cancel();     timer.cancel();     timer.purge(); 

after nothing happens , program never exits. how can stop timertask thread?

timer.cancel(); timer.purge(); 

will work .

int java.util.timer.purge()

removes canceled tasks task queue. if there no other references on tasks, after call free garbage collected.

returns: number of canceled tasks removed task queue.


Comments