Я пишу сервер, на котором может выполняться вредоносный код. Чтобы злоумышленник не бросил поток в бесконечный цикл, я хочу установить ограничение времени выполнения в одну секунду.
InterruptedException
может быть пойман внутри бесконечного цикла, что позволяет злоумышленнику сохранить контроль над потоком. Таким образом, Thread.interrupt()
не является приемлемым решением.
Моя текущая реализация не позволяет враждебным потокам получать какие-либо ресурсы (включая блокировки), использует Thread.stop()
для прекращения выполнения и отменяет любые изменения, сделанные потоком. Моя главная жалоба заключается в том, что он использует устаревший метод Thread.stop()
; Я не люблю использовать устаревший код.
Мне интересно, есть ли более приемлемое в отрасли решение, за исключением запуска / уничтожения совершенно новой JVM, которая потребовала бы слишком много ресурсов для моих целей.