4 ошибки. На мой взгляд не понятно.
Методы устанавливают значения поля isValuePresent; после своих действий
и осведомляют нити.
устанавливают значения только после смены логики поля isValuePresent.
Что я не вижу?
Результат работы программы
Put: 1
Got: 1
Put: 2
Got: 2
Put: 3
Got: 3
Put: 4
Got: 4
Put: 5
Got: 5
Put: 6
Got: 6
Put: 7
Got: 7
Put: 8
Got: 8
Put: 9
Got: 9
Put: 10
Got: 10
Put: 11
Got: 11
Put: 12
Got: 12
Put: 13
Got: 13
Put: 14
Got: 14
Put: 15
Got: 15
Put: 16
Got: 16
Put: 17
Got: 17
Put: 18
Got: 18
Put: 19
Got: 19
Put: 20
Got: 20
Put: 21
Got: 21
Put: 22
Got: 22
Put: 23
Got: 23
Put: 24
Got: 24
Put: 25
Got: 25
Put: 26
Got: 26
Put: 27
Got: 27
Put: 28
Got: 28
Put: 29
Got: 29
Put: 30
Got: 30
Put: 31
Got: 31
Put: 32
Got: 32
Put: 33
Got: 33
Put: 34
Got: 34
Put: 35
package com.javarush.task.task27.task2709;
/*
Producer–consumer
*/
public class Solution {
public static void main(String args[]) throws InterruptedException {
TransferObject transferObject = new TransferObject();
ProducerTask producerTask = new ProducerTask(transferObject);
ConsumerTask consumerTask = new ConsumerTask(transferObject);
Thread.sleep(50);
producerTask.stop();
consumerTask.stop();
}
}