Я пытаюсь создать поток в Java, и похоже, что он будет работать (поток запускается, и если я попытаюсь написать некоторые случайные мысли в код, программа вернет ошибки в thread-0. Но по какой-то причине, код в потоке просто не выполняется. Когда я вставлял простой файл system.out.printl в начале, он не показывался. Я не нашел ничего, когда искал эту проблему, поэтому надеюсь, что вы сможете мне помочь.
Главный:
public class Main {
public static void main(String[] args) throws java.io.IOException{
SendMessages sm = new SendMessages();
sm.start();
System.out.println("2");
while(true){
}
}
}
Нить:
public class SendMessages extends Thread {
public void run(String[] args) throws java.io.IOException {
System.out.println("1");
}
}
"2" - это печать, но не "1".
Приветствую
run
не генерирует исключений и не принимает параметры.
Вы должны переопределить хороший:
public void run() {
}
Вы можете добавить аннотацию @Override
чтобы убедиться, что вы переопределяете ее:
@Override
public void run() {
}
@Override
при попытке переопределить метод.
Вы не правильно выполняете метод run(). Правильной сигнатурой метода для запуска является: public void run()
, без параметров. Если вы измените класс SendMessages на
public class SendMessages extends Thread {
@Override
public void run() {
System.out.println("1");
}
}
Вы должны увидеть 1 напечатанную. Вот почему примечание @Override полезно - оно говорит вам, когда написанный вами метод не является чем-то главным.
run
не генерирует исключения и не принимает параметры.Thread
. Вместо этого реализуйтеRunnable
и передайте его конструктору Thread.