3

I am trying to execute some code in a thread. I have extend the Thread class and put some code there to execute. I am also throwing exception to terminate the current thread and restart it in the catch block. It is doing so but when new Thread start then abnormal result is shown.

Suppose my requirement is to print counter like 1,2,3,4,5. It is well for the first time. But when I start new Instance then the result is random something like 1,1,1,1,1,1,12,4,6,1,1,1,1. Here is my code:

public class ThreadTest { static Publish publish; public static void main(String[] args) { publish = new Publish(); publish.start(); } static class Publish extends Thread { static int counter = 1; public void run(){ while (true) { System.out.println("counter is: " + counter); counter++; try { Thread.sleep(2000); if (counter > 5) { throw new InterruptedException("Exception thrown manually to restart thread"); } } catch (Exception ex) { publish.interrupt(); publish.getThreadGroup().interrupt(); counter = 1; publish = new Publish(); publish.start(); } } } } } 

The result are like below:

 run: counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 1 counter is: 3 counter is: 4 counter is: 1 counter is: 3 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 8 counter is: 9 counter is: 11 counter is: 12 counter is: 12 counter is: 14 counter is: 15 counter is: 15 counter is: 17 counter is: 18 counter is: 19 counter is: 20 counter is: 1 counter is: 20 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 20 counter is: 1 counter is: 1 counter is: 20 counter is: 20 counter is: 20 counter is: 20 counter is: 20 counter is: 2 counter is: 20 counter is: 20 counter is: 2 counter is: 20 counter is: 1 counter is: 1 counter is: 2 counter is: 2 counter is: 2 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 4 counter is: 2 counter is: 4 counter is: 4 counter is: 2 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 2 counter is: 2 counter is: 2 counter is: 3 counter is: 4 counter is: 6 counter is: 1 counter is: 1 counter is: 1 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 5 counter is: 3 counter is: 4 counter is: 4 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 6 counter is: 7 counter is: 7 counter is: 2 counter is: 1 counter is: 1 counter is: 3 counter is: 3 counter is: 4 counter is: 6 counter is: 7 counter is: 7 counter is: 6 counter is: 9 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 3 counter is: 1 counter is: 1 counter is: 3 counter is: 2 counter is: 3 counter is: 3 counter is: 4 counter is: 6 counter is: 2 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 4 counter is: 2 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 2 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 1 counter is: 2 counter is: 1 counter is: 4 counter is: 5 counter is: 5 counter is: 1 counter is: 2 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 4 counter is: 6 counter is: 7 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 8 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 2 counter is: 3 counter is: 4 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 5 counter is: 7 counter is: 7 counter is: 1 counter is: 1 counter is: 1 counter is: 4 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 1 counter is: 3 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 6 counter is: 8 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 5 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 3 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 5 counter is: 7 counter is: 8 counter is: 9 counter is: 10 counter is: 11 counter is: 12 counter is: 13 counter is: 1 counter is: 2 counter is: 3 counter is: 3 counter is: 5 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 2 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 2 counter is: 2 counter is: 2 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 4 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 4 counter is: 5 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 6 counter is: 8 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 8 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 3 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 3 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 5 counter is: 6 counter is: 7 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 1 counter is: 2 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 2 counter is: 4 counter is: 1 counter is: 1 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 9 counter is: 9 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 1 counter is: 1 counter is: 2 Exception in thread "Thread-260" java.lang.IllegalThreadStateException at java.lang.Thread.start(Thread.java:708) counter is: 1 counter is: 2 at threadtest.ThreadTest$Publish.run(ThreadTest.java:49) counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 2 counter is: 3 counter is: 5 counter is: 6 counter is: 7 counter is: 1 counter is: 1 counter is: 3 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 3 counter is: 3 counter is: 6 counter is: 7 counter is: 8 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 6 counter is: 7 counter is: 8 counter is: 1 counter is: 3 Exception in thread "Thread-236" java.lang.IllegalThreadStateException at java.lang.Thread.start(Thread.java:708) counter is: 1 at threadtest.ThreadTest$Publish.run(ThreadTest.java:49) counter is: 1 counter is: 2 counter is: 1 counter is: 4 counter is: 5 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 3 counter is: 1 counter is: 1 counter is: 1 Exception in thread "Thread-165" java.lang.IllegalThreadStateException counter is: 3 at java.lang.Thread.start(Thread.java:708) at threadtest.ThreadTest$Publish.run(ThreadTest.java:49) counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 2 counter is: 3 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 6 counter is: 8 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 5 counter is: 7 counter is: 8 counter is: 9 counter is: 10 counter is: 11 counter is: 12 counter is: 13 counter is: 14 counter is: 15 counter is: 16 counter is: 17 counter is: 18 counter is: 19 counter is: 20 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 4 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 1 Exception in thread "Thread-156" java.lang.IllegalThreadStateException at java.lang.Thread.start(Thread.java:708) at threadtest.ThreadTest$Publish.run(ThreadTest.java:49) counter is: 1 counter is: 1 counter is: 1 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 9 counter is: 10 counter is: 11 counter is: 12 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 2 counter is: 2 counter is: 3 counter is: 6 counter is: 7 counter is: 8 counter is: 2 counter is: 3 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 1 counter is: 2 counter is: 2 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 4 counter is: 6 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 3 counter is: 5 counter is: 5 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 1 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 8 counter is: 10 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 4 counter is: 6 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 4 counter is: 6 counter is: 7 counter is: 8 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 9 counter is: 10 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 7 counter is: 9 counter is: 9 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 1 counter is: 2 counter is: 2 counter is: 4 counter is: 5 counter is: 5 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 3 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 counter is: 6 counter is: 7 counter is: 8 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 1 counter is: 2 counter is: 1 counter is: 2 counter is: 6 
10
  • when a Thread is stopped, you can't restart it. You can start a new Thread that is similar Commented Jan 22, 2019 at 9:29
  • You can't restart a thread. Why don't you just reuse the already running instance? What you could do is put the data and logic into a Runnable or Callable and replace that. Commented Jan 22, 2019 at 9:29
  • You not restarting your thread. You start another one while first continue to work. Commented Jan 22, 2019 at 9:30
  • 1
    Just exit the while loop, or return. Commented Jan 22, 2019 at 9:41
  • 1
    No, threads are just heap objects. Each new object gets new heap memory. It isn't special for Thread. Commented Jan 22, 2019 at 16:45

1 Answer 1

1

The problem with this program is that the threads are just being created and never been destroyed as you have interrupted the running thread by itself, that's where it's being messed up. The threads aren't stopping and it keeps executing as it is inside the loop. I wouldn't comment whether it is the right way to do it. But I would suggest to look for other alternatives. I have made some modification in your program as follows:

public class ThreadTest { static Publish publish; public static void main(String[] args) { System.out.println("Initial active threads : " + Thread.activeCount()); publish = new Publish(); publish.start(); } static class Publish extends Thread { static int counter = 1; public void run() { while (true) { System.out.println("counter is: " + counter); counter++; try { Thread.sleep(2000); if (counter > 5) { throw new InterruptedException("Exception thrown manually to restart thread"); } } catch (Exception ex) { counter = 1; publish = new Publish(); publish.start(); System.out.println("active threads : " + Thread.activeCount()); return; } } } } } 

Here is the output of the program:

Initial active threads : 2 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 active threads : 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 active threads : 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 active threads : 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 active threads : 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 active threads : 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 active threads : 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 active threads : 4 counter is: 1 counter is: 2 counter is: 3 counter is: 4 counter is: 5 active threads : 4 counter is: 1 counter is: 2 counter is: 3 

If you want to see the total threads being created and not stopping at all in your program, try placing print statement for the current active threads.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.