Этот вопрос не о том, действительно ли побочные пробуждения действительно счастливы, потому что это уже обсуждалось здесь на полную длину: На самом деле происходит ложное пробуждение? Поэтому это также не о том, почему мне нужно поставить цикл вокруг моего wait
Statement. Что это значит:
Я хотел бы построить случай, где происходит ложное пробуждение. То, что я узнал до сих пор в связанном выше вопросе, следующее:
Если процесс Linux сигнализируется, что его ожидающие потоки будут приятное, горячее поддельное пробуждение.
Итак, похоже, что это будет работать только с Linux-машиной, на самом деле у меня Ubuntu 11.04 - 64-бит. Я написал программу Java с одним потоком, ожидающим условия, но без цикла и другого класса, на котором поток просто ждет и получает уведомление другим потоком. Я думал, что запуск всех трех потоков в одной JVM заставит описанный выше случай, но похоже, что это не так.
Есть ли еще одна идея, как построить такой случай в Java?