Страхотно благодаря предварително!
Имах проблеми със синхронизирането на 2 нишки: основна и нишка, която се извиква от StepRunner.java. Просто имам нужда от това, че резултатът от итерацията се показва преди началото на следващата итерация.
Какво искам:
Please enter step number [1, 2, 3 or 4] or 5 for exit: 2
Please enter natural value for factorial computing: 2
2! = 2
Please enter step number [1, 2, 3 or 4] or 5 for exit:
Какво не искам:
Please enter step number [1, 2, 3 or 4] or 5 for exit: 2
Please enter natural value for factorial computing: 2
Please enter step number [1, 2, 3 or 4] or 5 for exit: 2! = 2
За него имам синхронизиран блок в StepRunner.java:
public void run() {
thread.start();
synchronized (thread) {
try {
while (thread.isAlive()) { /**Loop is an Oracle's recommendation*/
thread.wait();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Но защо методът wait() работи правилно без метод notify() на което и да е място от моя код?