В задаче поломан 5ый пункт требований. Система проверки говорит, что приоритеты потоков не гарантируют starvation, однако по условию они нужны. Также порой говорит убрать Thread.sleep, но по условию это тоже нужно. Уже даже скопипастил код из правильного решения и всё равно последний пункт не проходит проверку =)
package ru.javarush.java.core.level53.task04;
public class Solution {
public static void main(String[] args) throws InterruptedException {
Runnable calculate = () -> {
while (true){
//
}
};
Runnable manage = () -> {
while (true){
//
}
};
Runnable generateReport = () -> {
while (true) {
System.out.println("Фоновый Отчёт: Я всё ещё жду своей очереди...");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
};
Thread thread1 = new Thread(calculate);
thread1.setPriority(Thread.MAX_PRIORITY);
Thread thread2 = new Thread(manage);
thread2.setPriority(Thread.MAX_PRIORITY);
Thread thread3 = new Thread(generateReport);
thread3.setPriority(Thread.MIN_PRIORITY);
thread1.start();
thread2.start();
thread3.start();
thread1.join();
thread2.join();
thread3.join();
}
}