
22.12.2009, 17:22
|
|
Участник форума
Регистрация: 06.05.2008
Сообщений: 161
Провел на форуме: 1289087
Репутация:
59
|
|
Разбираю пример из книжки по java
Есть следующий код:
Код:
class NewThread implements Runnable {
String name;
Thread t;
NewThread( String threadname ) {
name = threadname;
t = new Thread( this, name );
System.out.println("Новый поток: " + t);
t.start();
}
public void run() {
try {
for ( int i = 5; i > 0; i-- )
{
System.out.println(name + ": " + i);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.println( name + " прерван");
}
System.out.println(name + " завершен");
}
}
class DemoJoin {
public static void main(String args[]) {
NewThread ob1 = new NewThread("Один");
NewThread ob2 = new NewThread("Два");
NewThread ob3 = new NewThread("Три");
System.out.println("Поток один запущен: " + ob1.t.isAlive() );
System.out.println("Поток два запущен: " + ob2.t.isAlive() );
System.out.println("Поток три запущен: " + ob3.t.isAlive() );
try {
System.out.println("Ожидание завершение потоков.");
ob1.t.join();
ob2.t.join();
ob3.t.join();
}catch ( InterruptedException e ) {
System.out.println("Главный поток прерван");
}
System.out.println("Поток один запущен: " + ob1.t.isAlive() );
System.out.println("Поток два запущен: " + ob2.t.isAlive() );
System.out.println("Поток три запущен: " + ob3.t.isAlive() );
System.out.println("Главный поток завершен.");
}
}
Почему отрабатывается метод run, ведь он не где в коде не запускается?
|
|
|