Передача данных между потоками с помощью Java

Я пишу многопоточное приложение, имитирующее кинотеатр. Каждый вовлеченный человек - это свой собственный поток, и параллелизм должен полностью выполняться семафорами. Единственная проблема, с которой я столкнулся, - это как связать потоки, чтобы они могли общаться (например, через канал).

Например:

Клиент [1], который является потоком, получает семафор, который позволяет ему подойти к кассе. Теперь Заказчик [1] ​​должен сообщить агенту по кассовым сборам, что он хочет посмотреть фильм «X». Затем BoxOfficeAgent [1], также являющийся потоком, должен проверить, не заполнен ли фильм, и либо продать билет, либо попросить клиента [1] выбрать другой фильм.

Как передать эти данные туда и обратно, пока все еще поддержание параллелизма с семафорами?

Кроме того, единственный класс, который я могу использовать из java.util.concurrent, - это класс Semaphore .

7
задан Bill the Lizard 21 September 2012 в 17:21
поделиться