how to re-start a thread?

84 views Asked by At

I have two threads, one of them starts when i press a button. it just display values from 1-20 on the button btn.settext(""+ j). inside the listener fo that button I wrote the following:

btn_listener.setOnClickLstener(new Listener) {
    public void onClickListener(view v) {
        if (!t2.isAlive()) {
            t2.start()
        }
    }
}

t2 is a thread. what happens at run time is, when I click the button while the thread2 is running nothing happens, but, when the thread2 finishes it job and i ckick the button the app crashes. any reason why that happens?

1

There are 1 answers

2
SummerCode On

A thread cannot be restarted.

According to SCJP by Kathy Sierra:

After you called the start() method on a thread, it cannot be restarted; it runs until completion, then it dissolves, and is considered dead (although you can still call its specific methods on it, you cannot call start() again).

If you call start() a second time, it will cause an exception (an IllegalThreadStateException, which is a RuntimeException).