Я изучал Java почти 8 месяцев, и я немного запутался в прерывистых потоках.Прерывание потоков в java
У меня есть приложение JavaFX multiThreaded, которое отображает все подключенные клиенты (ip и порт и т. Д.) В виде таблицы.
Когда программа запускается, я ввожу номер порта и нажимаю кнопку запуска, которая запускает класс сервера.
У меня есть серверный класс, который реализует Runnable, а когда клиент подключается, я создаю объект класса клиента, который расширяет Thread. И сервер и клиент класс имеет в своем методе выполнения:
public void run(){
while (!Thread.currentThread().isInterrupted()){
сервер создает клиент, как это:
new Thread(new Client(socket)).start();
А что мне интересно, если я создаю кнопку остановки, которая вызывает метод в классе сервера, который прерывает поток сервера, будут ли также прерываться потоки клиентов?
На самом деле я хочу, чтобы иметь возможность изменять порт без перезапуска программы. И, конечно, я не хочу, чтобы потоки продолжали работать в фоновом режиме, если я перехожу на другой порт.
Какие у меня варианты в этом случае? Если вы пропустите какую-либо информацию, просто оставьте комментарий, и я исправлю его сразу.
«Я действительно хочу, чтобы иметь возможность изменять порт без перезапуска программы. И, конечно, я не хочу, чтобы потоки продолжали работать в фоновом режиме, если я перехожу на другой порт». Итак, вы хотите разорвать какое-либо соединение с клиентом, пока оно происходит? Как грубо ... Я думаю, что намного лучше, если у вас есть рабочие потоки, проверяющие какую-то переменную и позволяющие им отключиться (используя протокол приложения). –
@MaartenBodewes haha Я хочу, чтобы это сделать, допустим, если я набираю неправильный номер порта или anythying. – Johan
@MaartenBodewes Хорошо, вы имеете в виду что-то вроде volatile boolean? – Johan