Я пытаюсь выполнить некоторый код в потоке.Я расширил класс Thread и поместил туда некоторый код для выполнения.Я также выбрасываю исключение, чтобы завершить текущий поток и перезапустить его в блоке catch.Это происходит так, но когда запускается новый поток, отображается ненормальный результат.Предположим, мое требование - напечатать счетчик, как 1,2,3,4,5
.это хорошо в первый раз.Но когда я запускаю новый экземпляр, результат случайный, что-то вроде 1,1,1,1,1,1,12,4,6,1,1,1,1
.Кто-нибудь может мне помочь?Вот мой код ниже:
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();
}
}
}
}
}
Результат как ниже >>
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