#java
#java
Вопрос:
Чтобы представить это в контексте: допустим, я играл в онлайн-игру и создал переполнение стека. Повлияет ли это на всех, кто играет на сервере, или только на меня?
Ответ №1:
Если JVM есть в вашем браузере, определенно нет.
На сервере переполнение стека приведет к эффективному завершению потока. Если в нем отсутствуют finally
блоки, поток может умереть, не освободив ресурсы, что может привести к заклиниванию сервера через некоторое время, но он должен освободить все мьютексы, удерживаемые из-за synchonized
блоков. Предполагая, что ошибка не обрабатывается, он вызовет thead ThreadUncaughtExceptionHandler
, который обычно не отключает сервер, если сервер не выполняет работу в основном потоке, но для отключения сервера может быть реализован обработчик неперехваченных исключений.
Ответ №2:
Это зависит от того, как запрограммирован сервер; и что происходит с StackOverflow. Если оно не перехвачено, это может повлиять на весь сервер.
Комментарии:
1. «Если оно не перехвачено, это может повлиять на весь сервер», это просто неверно. Это приведет к завершению текущего текущего потока (с переполнением стека). Все остальные потоки продолжают выполняться.
2. Да, но если сервер ожидает ответа от этого потока; это может вызвать проблемы и т.д.; Если переменная установлена неправильно, это может повлиять на сервер wohle.