Thread类将线程所必需的功能都进行了封装,表12.1所示是Thread类的一些基本方法。
表12.1 Thread类的基本方法
通过继承Thread类来实现线程的一般过程如下:
(1)编写Thread类的子类,并在这个子类中覆写run()方法。
(2)在run()方法中编写这个线程需要执行的代码或任务。
(3)在主线程中使用(1)中编写的子类来创建线程。
(4)使用start()方法来启动线程。
【例12.1】通过创建Thread类的子类来实现多线程编程。
在Eclipse中创建一个名为Chapter12的项目,并在这个项目的src目录下新建一个名为cn.pzhu.create的包,然后在这个包下面创建一个名为MyThread的类(该类是Thread的子类),最后在这个类中覆写run()方法,关键代码如下:
说明:
为了让程序效果更明显,上述代码中线程重复执行输出5次后结束,并且每次输出之后将休眠100 ms。如果线程不使用sleep()方法休眠,可能在一个时间片内程序就执行完毕了,无法看出线程之间的交替执行。
编写好MyThread类之后,下面开始编写示例。在cn.pzhu.create的包下创建一个名为Example01的类,在这个类中既有main()方法的输出,又调用线程来进行输出。关键代码如下:
(www.daowen.com)
编写好之后,运行程序,程序运行结果如图12.3所示。
图12.3 程序运行结果
从图12.3可以看出,MyThread类的run()方法中的输出操作与main()方法中的输出在随机轮换执行。在使用多线程的情况下,MyThread类的run()方法与main()方法可以同时运行,互不影响。
说明:
运行结果中的"main"和"Thread-0"是通过Thread.currentThread().getName()方法获取到的当前正在运行的线程的名字,如果在创建线程的时候没有指定名字,那么系统会自动生成。
如果将Example01.java中创建线程的代码修改为:
然后再运行程序,程序运行结果如图12.4所示。
图12.4 程序运行结果
从运行结果可以看出,线程的名字已经发生了变化,变为了"newThread"。
提示:
除了在构造线程的时候,利用构造方法给线程指定名称,还可以通过setName(String name)方法来修改线程的名称。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。