欢迎来到天天文库
浏览记录
ID:33590344
大小:686.69 KB
页数:39页
时间:2019-02-27
《第十一章 java多线程编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象程序设计Java版安庆师范学院张步忠zhbzhong@aqtc.edu.cn安庆师范学院计算机与信息学院·Java程序设计·www.aqtc.edu.cn第11章Java多线程编程安庆师范学院计算机与信息学院·Java程序设计·www.aqtc.edu.cn安庆师范学院111.1线程与线程类11.2线程的创建11.3线程的状态与调度11.4线程状态的改变11.5资源共享与对象锁11.6线程组安庆师范学院计算机与信息学院·Java程序设计·www.aqtc.edu.cn11.1线程与线程类11.1.1线程的概念11.1.2Runnable接口和Threa
2、d类安庆师范学院计算机与信息学院·Java程序设计·www.aqtc.edu.cn安庆师范学院211.1.1线程的概念进程是一个程序关于某个数据集的一次运行。即进程是运行中的程序,是程序的一次运行活动。线程则是进程中的一个单个的顺序控制流。单线程的概念很简单,整个程序中只有一个执行线索多线程是指在单个的程序内可以同时运行多个不同的线程完成不同的任务安庆师范学院计算机与信息学院·Java程序设计·www.aqtc.edu.cn11.1.1线程的概念很多应用程序是用多线程实现的,如浏览器。在浏览器中,可以边滚动屏幕,边下载Applet或图像,还可以同时播放动画和声音等。
3、多线程与多任务不同。多任务是在操作系统下可同时运行多个程序多线程是在一个程序中的多个同时运行的控制流。安庆师范学院计算机与信息学院·Java程序设计·www.aqtc.edu.cn安庆师范学院311.1.2Runnable接口和Thread类Java语言实现多线程编程的接口和类在java.lang包中定义了Runnable接口和Thread类。Runnable接口中只定义了一个方法,它的格式为:publicabstractvoidrun()这个方法要由实现了Runnable接口的类实现。Runnable对象称为可运行对象,一个线程的运行就是执行可运行对象的run
4、()方法。run()方法也称为线程体。安庆师范学院计算机与信息学院·Java程序设计·www.aqtc.edu.cnThread类是线程类,该类的常用构造方法如下:publicThread(Runnabletarget,Stringname)publicThread(Stringname)publicThread(Runnabletarget)target为线程运行的目标对象,类型为Runnable,当一个线程对象调用start()方法启动后即运行该目标对象的run()方法,name为线程名。Thread类实现了Runnable接口,因此Thread对象也是可运
5、行对象,若没有指定目标对象,则以当前类对象为目标对象。若没有指定线程名,则由系统指定。安庆师范学院计算机与信息学院·Java程序设计·www.aqtc.edu.cn安庆师范学院4Thread类的常用方法publicvoidrun()线程的线程体,通常Thread类的子类覆盖该方法。publicvoidstart()由JVM调用线程的run()方法,启动线程开始执行。publicstaticThreadcurrentThread()返回当前正在执行的线程对象的引用。publicvoidsetName(Stringname)设置线程名。publicStringgetNa
6、me()返回线程名。publicstaticvoidsleep(longmillis)throwsInterruptedExceptionpublicstaticvoidsleep(longmillis,intnanos)throwsInterruptedException使当前正在执行的线程暂时停止执行指定的毫秒时间。指定时间过后,线程继续执行。该方法抛出InterruptedException异常,必须捕获或声明抛出。安庆师范学院计算机与信息学院·Java程序设计·www.aqtc.edu.cnThread类的常用方法publicvoidsetDaemon(bool
7、eanon)设置线程为Daemon(后台)线程。publicbooleanisDaemon()返回线程是否为Daemon(后台)线程。publicstaticvoidyield()使当前执行的线程暂停执行,允许其他线程执行。publicThreadGroupgetThreadGroup()返回该线程所属的线程组对象。publicvoidinterrupt()中断当前线程。publicbooleanisAlive()返回指定线程是否处于活动状态。安庆师范学院计算机与信息学院·Java程序设计·w
此文档下载收益归作者所有