Как то я подзалип и упустил момент.
public interface ReadFileInterface{ у меня есть это
void start(); в нем есть это
}
public static class ReadFileThread implements ReadFileInterface, Runnable{ // также у меня есть это
тут я должен реализовать метод -
start(){
........bla bla
}
}
в мейне
у меня
psvm {
ReadFileInterface rf = new ReadFileThread();
rf.start();
}
и правильно я понимаю что у меня запускается моя имплементация метода start из интерфейса ReadFileInterface
вместо start(); который запускает нить.
Как быть что я пропустил как запустить эту нить?
le
33 уровень
Просвятите
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #3303140
22 августа 2024, 10:44
Нет, неправильно. Реализация берётся из класса
0
leExpert
22 августа 2024, 11:23
Я Немного непонял, реализация берется из класса ReadFileThread я это понимаю
Но в этом классе у меня есть реализация метода start() из интерфейса ReadFileInterface
И когда на обьекте ReadFileThread я вызываю метод start() вместо создания нити вызывается
мой метод start(); моего исполнения который никакую нить незапускает.
0
hidden #3303140
22 августа 2024, 15:40решение
У тебя вообще нет никакого метода start(), который запустил бы нить. У тебя здесь и нити нет. Runnable - это что-то, что просто имеет метод run(), то есть что-то, что могло бы быть заданием для нити. Как видишь, ни намёка на метод start
Runnable нельзя запустить само по себе, можно просто исполнить его метод run(). А вот у объекта Thread есть метод start(), и если его запустить, то тогда этот Thread выполнит метод run() того Runnable, которое ему было передано в конструктор:
В этом примере Runnable - это вот эта функция, реализующая метод run():
А запуск выполняется у треда t, который эту функцию выполняет. И пока в этом примере в треде t происходит сон длиной в 0.1 секунды, в главном треде успевает выполниться вывод в консоль "Hello from main!".
Я не знаю, чего тебе нужно добиться в твоей задаче и для чего нужен интерфейс ReadFileInterface, но чтобы запустить нить, нужно чтобы у тебя, собственно, была нить:
+4