Во-первых, операция stop () на java.util.Thread устарела, и ее использование категорически не рекомендуется, так как она может оставлять вещи в нестабильном состоянии. Крайне желательно, чтобы вы отправляли сообщение в Runnable потока с просьбой остановить его безопасно.
Проблема, с которой вы столкнулись, заключается в том, что ваш поток блокирует операции ввода-вывода, и поэтому он не получит ваше сообщение до завершения ввода-вывода.
Лучшее, на что вы можете надеяться, если кто-то другой не придумал лучшего варианта, - это прерывать () поток и надеяться, что классы ввода-вывода заметят и остановят загрузку.
Edit: Javadoc для Thread.interrupt () действительно говорит, что ввод / вывод может быть прерван, если вы используете java.nio, но это маловероятно, что вы. «Нормальный» трафик java.io блокируется и не может быть прерван.
Почему не поддерживаются Thread.stop, Thread.suspend и Thread.resume?