Java 面向对象程序设计
在 ThreadTest 类的 main()方法中创建了两个 SimpleThread 类的线程对象并调用线程类
的 start()方法启动线程。构造线程时没有指定目标对象,所以线程启动后执行本类的 run()
方法。
注意,实际上 ThreadTest 程序中有三个线程同时运行。请试着将下段代码加到 main()
方法中,分析程序运行结果。
for(int i=0; i<100; i++){
System.out.println(Thread.currentThread().getName()+"="+ i);
try{
Thread.sleep((int)(Math.random()*500));
}catch(InterruptedException e){}
System.out.println(Thread.currentThread().getName()+ " DONE");
}
从上述代码执行结果可以看到,在应用程序的 main()方法启动时,JVM 就创建一个主
线程,在主线程中可以创建其他线程。
再看下面的程序:
程序9.3 MainThreadDemo.java
public class MainThreadDemo{
public static void main(String args[]){
Thread t = Thread.currentThread();
t.setName("MyThread");
System.out.println(t);
System.out.println(t.getName());
System.out.println(t.getThreadGroup().getName());
}
}
_____________________________________________________________________________▃
该程序输出结果为:
Thread[MyThread, 5, main]
MyThread
main
上述程序在 main()方法中声明了一个 Thread 对象 t,然后调用 Thread 类的静态方法
currentThread()获得当前线程对象。然后重新设置该线程对象的名称,最后输出线程对象、
线程组对象名和线程对象名。
9.2.2 实现 Runnable 接口创建线程
可以定义一个类实现 Runnable 接口,然后将该类对象作为线程的目标对象。实现
Runnable 接口就是实现 run()方法。
下面程序通过实现 Runnable 接口构造线程体。
程序9.4 ThreadTest.java
class T1 implements Runnable{
public void run(){
for(int i=0;i<15;i++)