#java
#java
Вопрос:
public class MyThread{
public MyThread(int m) {
super();
}
public void run() {
for (int x = 0; x < 201; x ) {
System.out.println("Thread Running" x );
}
}
public static void main(String[] args) {
MyThread mt = new MyThread(200);
}
}
Код выполняется, но он не выводится. Вероятно, это конструктор, но учитель сказал мне выполнить только публичный запуск void и основной метод, позволяющий коду работать.
Также дайте мне знать, если я задаю вопрос неправильного типа, я попытался посмотреть «Как задавать вопросы», чтобы лучше задавать вопросы.
Комментарии:
1. Вы должны запустить () поток. Вам также необходимо либо реализовать Runnable, либо расширить поток. docs.oracle.com/javase/7/docs/api/java/lang/Thread.html
2. ну, я сделал mt.start(); но он продолжал выдавать мне ошибки, поэтому я удалил его Спасибо за помощь!
3. Взгляните на руководства по Java: параллелизм для четкого объяснения того, как использовать потоки.
Ответ №1:
У вас есть два варианта:
-
Расширить
Thread
.public class MyThread extends Thread{
Затем вызовите
start()
inmain
.mt.start();
-
Реализовать
Runnable
.public class MyThread implements Runnable{
Затем начните новую
Thread
передачу вашего объекта и вызовитеstart()
.Thread t = new Thread(mt); t.start();
Комментарии:
1. Я лично предпочитаю второй вариант, потому что он не привязывает класс к подклассу
Thread
.2. Предполагалось, что я должен был выполнить оба для домашней работы, мой учитель сказал, что лучше всего использовать Runnable, но он хотел, чтобы мы изучили оба. Спасибо за помощь! Вы получили лучший ответ! C:
3. @Barranka Я также предпочитаю второй вариант по причине, которую вы уже указали.
Ответ №2:
Похоже, вам не хватает implements Runnable
для MyThread. И тогда вам понадобится start()
ваш mt
поток.
Комментарии:
1. Глупый я! Проблема решена!