Как реализовать простую синхронизацию потоков с использованием мониторов для очереди - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь реализовать синхронизацию потоков с помощью мониторов, для простой проблемы с очередью, очереди людей, которые будут использовать банкомат и расставлять приоритеты для пожилых людей.

1 Ответ

0 голосов
/ 04 января 2019

Вы можете использовать одну из предоставленных реализаций интерфейса java.util.concurrent.BlockingQueue вместо написания собственного кода, например, java.util.concurrent.PriorityBlockingQueue.

Неограниченная очередь блокировки, которая использует те же правила упорядочения, что и класс PriorityQueue, и предоставляет блокирующие операции поиска.Хотя эта очередь логически не ограничена, попытки добавления могут быть неудачными из-за истощения ресурсов (что приводит к OutOfMemoryError).Этот класс не разрешает нулевые элементы.Очередь приоритетов, основанная на естественном упорядочении, также не позволяет вставлять несопоставимые объекты (в результате получается ClassCastException).

Изучение классов в пакете java.util.concurrent - хорошее упражнение, если вы изучаете параллелизм, этот код хорошо написан и задокументирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...