Данная мне задача состоит в создании двух потоков, один из которых записывает значение в переменную, а другой после него считывает это значение и выводит. Итерация повторяется заданное количество раз (number). В задании нельзя использовать wait() с параметром, yield() и sleep(). Не совсем понимаю, почему вывод после запуска моего кода показывает совершенно другую картину(потоки меняются местами), да и строк с выводом должно быть четное количество(2*number), что не всегда так на практике. Буду благодарен любому совету.
public class Main {
public static void main(String[] args) {
int number;
Scanner in = new Scanner(System.in);
System.out.println("Enter the amount of iterations:");
number = in.nextInt();
CommonResource resource = new CommonResource(5);
Thread readingThread = new Thread(new Runnable() {
@Override
public synchronized void run() {
System.out.println("The 2nd thread has read value " + resource.getX());
notify();
}
});
Thread writingThread = new Thread(new Runnable() {
@Override
public synchronized void run() {
resource.setX(resource.getX() + 1);
System.out.println("The 1st thread has applied value " + resource.getX());
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
writingThread.start();
readingThread.start();
for (int i = 0; i < number - 1; i++) {
writingThread.run();
readingThread.run();
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как собрать ArrayList из последних 10 элементов другого ArrayList? (В последнем всегда 10 или более элементов)Все элементы в ArrayList - Integer
Судя по выданной мне студией ошибке мне нужно запустить deamon, насколько я знаю во время gradle build deamon включался самКак решить проблему?
Здраствуйте ,изучаю многопоточность и столкнулся с некоторыми вещами и немогу собрать информацию во единоПРошу вас помочь мне в этом
Уважаемые Друзья! Подскажите, пожалуйста, решение задачи: "Написать программу, определяющую, содержит ли строка символы, байтовое представление...