я создал следующий класс с именем, как ThreadClass (который является нить, как вы можете видеть), ее структура что-то вроде следующегоThread.stop() и, наконец,
class SomeTask implements Runnable
{
boolean someCondition=true;
public void run() {
try
{
while(someCondition)
{
//Here goes the Process Code
}
}
catch(Exception errorException)
{
//Catching the Exception
}
finally
{
////I expect that this finally should run every time ,whatever happens in the world
}
}
}
Мой вопрос о наконец блока и остановки() метода
Как и выше класса реализует Runnable, так что я могу создать объект этого класса и начать нить его по телефону старта() method.I Я также в курсе тот факт, что я могу остановить с помощью stop() (Да, я знаю, это устарело).
То, что я хочу уточнить себя в том, что, если каким-то образом мне нужно вызвать метод остановки на объекте ThreadClass, тогда я могу полагаться на блок наконец выполнить, даже если поток остановлен путем вызова остановки (), поскольку я делаю некоторые важные закрывающие вещи в блоке finally.
@nobalG Я думаю, что вы частично задаете неправильный вопрос. Не должно быть «если мне нужно вызвать устаревший метод». Создайте приложение таким образом, чтобы не требовались устаревшие методы. Тогда вам не нужно думать, что может случиться, если вы их назовете. – GhostCat
Не было бы лучше реализовать метод 'myStop()', который устанавливает ваше условие в 'false', поэтому цикл' while' фактически останавливается? Даже если вам нужно запустить его позже с момента остановки, вы можете сохранить свои переменные/состояния и продолжить с этого на – Loki
@ EddyG. Я знаю, что могу это сделать, я просто спрашивал в этом конкретном случае. – nobalG