第5章多线程_补充案例.doc
文本预览下载声明
第五章 补充案例
继承Thread类创建多线程
一、案例描述
考核知识点
编 号名 称:继承Thread类创建多线程
练习目标
掌握如何通过继承Thread类实现多线程的创建。
掌握Thread类中run()方法和start()方法的使用。
需求分析
在程序开发中,会遇到一个功能需要多个线程同时执行才能完成的情况。这时,可以通过继承线程类Thread,并重写Thread类中的run()方法来实现。为了让初学者熟悉如何创建多线程,在案例中将通过继承Thread类方式创建线程,并实现多线程分别打印0~99的数字的功能。
设计思路(实现原理)
自定义一个类Demo,使其继承Thread类。
在Demo类中重写run()方法,在run()方法内编写一个for循环,循环体内打印:“Demo:”+当前循环次数。
编写测试类Example01,在Example01类的main()方法中,创建一个Demo对象,并执行其 start()方法,接着编写一个for循环,循环体内打印:“main:”+当前循环次数。
二、案例实现
class Demo extends Thread {
public void run() {
for (int x = 0; x 100; x++) {
System.out.println(Demo:+x);
}
}
}
public class Example01{
public static void main(String[] args) {
Demo d = new Demo();
d.start();
for(int x=0; x100; x++){
System.out.println(main:+x);
}
}
}
运行结果如图5-1所示。
运行结果
三、案例总结
1、通过继承Thread类,并重写Thread类中的run()方法可以实现多线程。
2、Thread类中,提供的start()方法用于启动新线程,线程启动后,系统会自动调用run()方法。
3、main()方法中有一条主线程在运行。
实现Runnable接口创建多线程
一、案例描述
考核知识点
编 号名 称:实现Runnable接口创建多线程
练习目标
掌握如何通过实现Runnable接口方式创建多线程。
掌握如何使用Thread类的有参构造方法创建Thread对象。
需求分析
在Java中只支持单继承,因此通过继承Thread类创建线程有一定的局限性,这时可以使用另一种方式,即实现Runnable接口来创建线程。通过这种方式需要在Thread(Runnable target)的构造方法中,传递一个实现了Runnable接口的实例对象。接下来在案例中将通过实现Runnable接口方式创建线程,并实现多线程分别打印0~99的数字的功能。
设计思路(实现原理)
自定义一个类Demo,使其实现Runnable接口。
在Demo类中覆写run()方法,在方法编写一个for循环,循环体内打印:当前线程名称:+当前循环次数。
编写测试类Example02,在Example02类的main()方法中,创建一个Demo对象,利用Thread(Runnable target)构造方法创建2个线程对象,分别命名为“蜘蛛侠”和“钢铁侠”,并执行线程对象的start()方法,同时编写for循环,循环内打印“main:”+当前循环次数。
二、案例实现
class Demo implements Runnable {
public void run() {
for(int x=0; x100; x++){
System.out.println(Thread.currentThread().getName()+:+x);
}
}
}
public class Example02 {
public static void main(String[] args) {
Demo d = new Demo();
Thread t1 = new Thread(d,蜘蛛侠);
Thread t2 = new Thread(d,钢铁侠);
t1.start();
t2.start();
for (int x = 0; x 100; x++) {
System.out.println(main: + x);
}
}
}
运行结果如图5-2所示。
运行结果
三、案例总结
1、可以把实现了Runnable接口并重写run()方法的实例对象,作为Thread有参构造方法的参数来创建多线程程序。
2、使用Thread类
显示全部