Параллелизм Java, сокет доступа в родительском потоке - PullRequest
1 голос
/ 07 февраля 2011

Я разрабатываю простой сетевой клиент / сервер.У клиента есть класс MainConnection, который поддерживает соединение с сервером и запускает рабочие потоки на основе поступающей информации. Я хочу, чтобы рабочие потоки отправляли отзывы о своем прогрессе на сервер через основное соединение.Я не уверен, должен ли я иметь общедоступный статический синхронизированный метод в MainConnection для отправки данных или передать объект Session в потоки, которые будут содержать Socket и синхронизированный метод для отправки данных.

1 Ответ

2 голосов
/ 07 февраля 2011

Неважно, какой дизайн вы выберете. Это действительно зависит от вас. Единственное, о чем вы должны заботиться - избегать одновременной записи двух потоков в один и тот же поток. Таким образом, вы можете создать свой собственный слой, который синхронизируется и используется несколькими потоками. В качестве альтернативы вы можете создать синхронизированный выходной поток и передать его всем потокам. Это, вероятно, лучший подход: в этом случае каждый поток просто знает, что записать в поток. Единственный слой, который знает, что поток синхронизирован, - это фабрика, которая его создает.

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