Я пытаюсь реализовать синхронизацию потоков с помощью мониторов, для простой проблемы с очередью, очереди людей, которые будут использовать банкомат и расставлять приоритеты для пожилых людей.
Вы можете использовать одну из предоставленных реализаций интерфейса java.util.concurrent.BlockingQueue вместо написания собственного кода, например, java.util.concurrent.PriorityBlockingQueue.
java.util.concurrent.BlockingQueue
java.util.concurrent.PriorityBlockingQueue
Неограниченная очередь блокировки, которая использует те же правила упорядочения, что и класс PriorityQueue, и предоставляет блокирующие операции поиска.Хотя эта очередь логически не ограничена, попытки добавления могут быть неудачными из-за истощения ресурсов (что приводит к OutOfMemoryError).Этот класс не разрешает нулевые элементы.Очередь приоритетов, основанная на естественном упорядочении, также не позволяет вставлять несопоставимые объекты (в результате получается ClassCastException).
Изучение классов в пакете java.util.concurrent - хорошее упражнение, если вы изучаете параллелизм, этот код хорошо написан и задокументирован.
java.util.concurrent