Java语言程序设计第8章.ppt

Java语言程序设计第8章.ppt

ID:52267532

大小:280.96 KB

页数:45页

时间:2020-04-03

Java语言程序设计第8章.ppt_第1页
Java语言程序设计第8章.ppt_第2页
Java语言程序设计第8章.ppt_第3页
Java语言程序设计第8章.ppt_第4页
Java语言程序设计第8章.ppt_第5页
资源描述:

《Java语言程序设计第8章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章线程郑莉JAVA语言程序设计本讲内容线程基础线程的概念Thread类Runnable接口资源共享和线程同步线程间的通信线程的生命周期线程的优先级程序举例2线程的概念进程:程序的一次执行线程:一个进程中的多个控制流通过多线程,一个进程表面上看同时可以执行一个以上的任务——并发多数程序设计语言不支持并发,支持多线程要借助于操作系统“原语(primitives)”Java是第一个支持内置线程操作的主流编程语言线程基础3Thread类简介线程类需要继承Thread类Thread的构造函数public

2、Thread(StringthreadName) publicThread()在线程的run方法中编写线程的主要任务sleep方法使线程休眠interrupt方法中断一个运行中的线程isAlive方法检查线程的状态setName方法设置线程名join方法等待线程结束,以执行当前线程线程基础4例8_1在新线程中计算整数的阶乘publicclassEx8_1{publicstaticvoidmain(String[]args){System.out.println("mainthreadstarts"

3、);FactorialThreadthread=newFactorialThread(10);thread.start();System.out.println("newthreadstarted,mainthreadends");}//endmain}线程基础5//classFactorialThreadcontrolsthreadexecutionclassFactorialThreadextendsThread{privateintnum;publicFactorialThread(intn

4、um){this.num=num;}publicvoidrun(){inti=num;intresult=1;while(i>0){result=result*i;i=i-1;}System.out.println("Thefactorialof"+num+"is"+result);System.out.println("newthreadends");}}6运行结果如下:mainthreadstartsnewthreadstarted,mainthreadendsThefactorialof10

5、is3628800newthreadends7例8_2创建3个新线程,每个线程睡眠任意0-6秒钟,然后结束。publicclassEx8_2{publicstaticvoidmain(String[]args){//创建并命名每个线程TestThreadthread1=newTestThread("thread1");TestThreadthread2=newTestThread("thread2");TestThreadthread3=newTestThread("thread3");Syste

6、m.out.println("Startingthreads");thread1.start();//启动线程1thread2.start();//启动线程2thread3.start();//启动线程3System.out.println("Threadsstarted,mainends");}}线程基础8classTestThreadextendsThread{privateintsleepTime;publicTestThread(Stringname)//构造函数{super(name

7、);//调用基类构造函数为线程命名//获得随机休息毫秒数sleepTime=(int)(Math.random()*6000);}publicvoidrun()//线程启动并开始运行后要执行的方法{try{System.out.println(getName()+"goingtosleepfor"+sleepTime);Thread.sleep(sleepTime);//线程休眠}catch(InterruptedExceptionexception){};//运行结束,给出提示信息System.

8、out.println(getName()+"finished");}}9运行结果为:StartingthreadsThreadsstarted,mainendsthread1goingtosleepfor3519thread2goingtosleepfor1689thread3goingtosleepfor5565thread2finishedthread1finishedthread3finished10Runnable接口如果希望一个已经有基类的类支持多线程,则不能再继承Th

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。