一.构建步骤
1.构建Thread子类,重写run方法。
2.创建线程对象。
3.线程对象调用start()方法启动该线程。
二.代码示例
package Thread;
public class Example extends Thread {
String threadId;
public Example(String threadId){
this.threadId=threadId;
}
public void run( ){
System.out.println("Thread started:"+this.threadId);
for (int i = 0; i <10; i++)
System.out.println("i="+(i+1)+" ");
System.out.println("Thread stopped:"+this.threadId);
}
}
package Thread;
public class Test{
public static void main(String[] args) {
System.out.println("Starting ThreadTest");
Example t1 = new Example("thread1");
t1.start();
Example t2 = new Example("thread2");
t2.start();
Example t3 = new Example("thread3");
t3.start();
System.out.println("ThreadTest is done");
}
}
运行结果:
Starting ThreadTest
ThreadTest is done
Thread started:thread1
i=1
i=2
i=3
Thread started:thread2
Thread started:thread3
i=1
i=4
i=5
i=6
Thread stopped:thread1
i=2
i=3
i=4
i=5
i=6
i=1
i=2
Thread stopped:thread2
i=3
i=4
i=5
i=6
Thread stopped:thread3
注解:在编译这个ThreadTest类后,每次执行后产生不同的结果,因为它没有确定什么时候的 执行哪个线程。同时运行的不止3个线程,至少需要4个线程,其中3个线程在main()方法中创建,并相互独立地运行,还有1个线程执行main()方法。ThreadTest类的某次执行过程可能会产生上例运行所示的结果。main()方法启动后,建立一个线程的实例,在3个子线程获得执行之前完成自己的工作;第二个线程启动;第一个线程启动,打印6个数字后停止;第三个线程启动,打印数字1;第二个线程恢复,打印6个数字后停止;第三个线程恢复,完成数字打印后退出。