RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Advanced
Jun 28, 2006

A Safe Way to Stop a Java Thread

The Thread.stop() method is unsafe and thus deprecated. If the thread being stopped was modifying common data, that common data remains in an inconsistent state.

A better way would be to have a variable indicating if the thread should be stopped. Other threads may set the variable to make the thread stop. Then, the thread itself may clean up and stop.

Consider the basic example shown below. The thread MyThread will not leave common data in an inconsistent state. If another thread calls the done() method for MyThread while MyThread is modifying data, MyThread will finish modifying the data cleanly before exiting.

public class MyThread extends Thread {

    private boolean threadDone = false;

    public void done() {
        threadDone = true;

    public void run() {
        while (!threadDone) {
            // work here
            // modify common data

Note that this method does not eliminate concern about synchronization.

Kevin Spiteri
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date