Добрый день, подскажите почему потоки бегут бесконечно, хотя по идее, должны останавливаться
import java.util.Random;
class Vlakno extends Thread {
private String name;
boolean isRun;
boolean isWait;
public Vlakno(String name){
this.name = name;
isRun = true;
isWait = false;
start();
}
public void run() {
int counter = 1;
while (isRun){
System.out.println(name + " - " + counter++);
}
}
}
public class ZK3 {
public static void main(String[] args) throws InterruptedException {
Vlakno liche = new Vlakno("liche");
Vlakno sude = new Vlakno("sude");
Random random = new Random();
for (int i = 0; i < 10; i++) {
int rnd = random.nextInt(10);
if (rnd % 2 == 0){
if (sude.isWait){
synchronized (sude){
sude.isWait = false;
sude.notify();
}
}
else{
synchronized (sude){
sude.isWait = true;
sude.wait();
}
}
}
else{
if (liche.isWait){
synchronized (liche){
liche.isWait = false;
liche.notify();
}
}
else{
synchronized (liche){
liche.isWait = true;
liche.wait();
}
}
}
}
synchronized (sude){
sude.isRun = false;
}
synchronized (liche){
liche.isRun = false;
}
}
}