В Java разрешено только одиночное наследование, но разрешена реализация нескольких интерфейсов, поэтому второй метод более гибок.
Скопируйте код кода следующим образом:
/**
* Запуск потоков, унаследованных от определения класса java.lang.Thread.
*/
общественный недействительный startOne() {
//Создаем экземпляр
OneThread oneThread = новый OneThread();
//Запускаем поток ThreadA
oneThread.startThreadA();
пытаться {
//Установим поток в спящий режим на 1 секунду
Thread.sleep(1000);
} catch (InterruptedException e) {
е.printStackTrace();
}
// Остановить поток. Почему бы здесь не использовать метод stop(), потому что от этого метода отказались, но его можно использовать во взаимоблокировках.
oneThread.stopThreadA();
}
Скопируйте код кода следующим образом:
/**
* Запуск потоков, реализующих определение интерфейса Runnable.
*/
общественный недействительный startTwo() {
//Создаем экземпляр
Runnable runnable = новый TwoThread();
//Помещаем экземпляр в поток
Поток threadB = новый поток (работоспособный);
//Начать поток
потокB.start();
}
Скопируйте код кода следующим образом:
//Наследуем класс Thread для определения потоков
класс OneThread расширяет поток {
частное логическое значение = false;
общественный недействительный старт () {
this.running = правда;
супер.старт();
}
общественный недействительный запуск () {
интервал я = 0;
пытаться {
пока (работает) {
System.out.println("Наследовать класс Thread, чтобы определить тело программы потока..." + i++);
Thread.sleep(200);
}
} catch (InterruptedException e) {
е.printStackTrace();
}
}
общественный недействительный startThreadA () {
System.out.println("Запустить поток, определенный путем наследования класса Thread");
это.start();
}
общественный недействительный stopThreadA () {
System.out.println("Закройте поток, определенный унаследованным классом Thread");
this.running = ложь;
}
}
Скопируйте код кода следующим образом:
// Реализуем интерфейс Runnable для определения потоков
класс TwoThread реализует Runnable {
частная дата runDate;
общественный недействительный запуск () {
System.out.println("Реализовать интерфейс Runnable для определения тела программы потока...");
this.runDate = новая дата();
System.out.println("Время запуска потока..." + runDate);
}
Скопируйте код кода следующим образом:
public static void main(String[] args) {
//создаем экземпляр объекта
ThreadStartAndStop threadStartAndStop = новый ThreadStartAndStop();
потокStartAndStop.startOne();
потокStartAndStop.startTwo();
}
Начать наследование потока определения класса потока наследовать тело программы потока определения класса потока... 0
Наследуйте класс Thread, чтобы определить тело программы потока...1
Наследуйте класс Thread, чтобы определить тело программы потока...2
Наследуйте класс Thread, чтобы определить тело программы потока...3
Наследуйте класс Thread, чтобы определить тело программы потока...4
Закройте унаследованный класс Thread, определите поток, реализуйте интерфейс Runnable и определите тело программы потока...
Время начала темы...Пт, 15 марта 12:56:57 CST 2013 г.