Использование мультиклиентского сервера: какой метод лучше - PullRequest
0 голосов
/ 12 июля 2020

Создание мультиклиентского сервера расширяет Thread или реализует Runnable в Java.

Использование

public class Receiver implements Runnable {

или

public class Receiver extends Thread {

Что что лучше для моего кода?

Ответы [ 3 ]

2 голосов
/ 12 июля 2020

Всегда лучше реализовать Runnable, если вы используете Runnable, вы можете выполнить его с потоком или пулом потоков

Прочтите «реализует Runnable» против «расширяет поток» в Java

подробнее

0 голосов
/ 12 июля 2020

Структура исполнителей

Я предполагаю, что вы имели в виду «многопоточность», где написали «многопользовательский сервер».

В современных Java мы редко управляем потоками вручную. Теперь у нас есть структура Executors для обработки деталей манипулирования потоками. Поэтому нет необходимости расширять Thread.

Задачи, которые будут запускаться в фоновом потоке, должны быть записаны как Runnable или Callable, а затем отправлены в службу-исполнитель. См. Класс Executors для создания службы исполнителя.

Вы получаете объект Future, который можно проверить на предмет выполнения, отмены или еще не выполненной задачи.

Это имеет уже много раз рассматривались на Stack Overflow. Найдите, чтобы узнать больше.

0 голосов
/ 12 июля 2020

Вот несколько ссылок, которые помогут вам найти ответ.

https://www.geeksforgeeks.org/implement-runnable-vs-extend-thread-in-java/ «реализует Runnable» против «расширяет поток» в Java

В вашем конкретном c случае я думаю (предполагаю), что ваш Receiver class не является Thread (посредством OOP) но должен работать в Thread или Perform Multi-thread , что означает, что он не должен расширять Thread (нет связи is-a между Receiver и Резьба )

...