《Java面向对象程序设计与系统开发》课件第12章 线程处理.ppt

上传人(卖家):momomo 文档编号:8127285 上传时间:2024-12-05 格式:PPT 页数:16 大小:3.23MB
下载 相关 举报
《Java面向对象程序设计与系统开发》课件第12章 线程处理.ppt_第1页
第1页 / 共16页
《Java面向对象程序设计与系统开发》课件第12章 线程处理.ppt_第2页
第2页 / 共16页
《Java面向对象程序设计与系统开发》课件第12章 线程处理.ppt_第3页
第3页 / 共16页
《Java面向对象程序设计与系统开发》课件第12章 线程处理.ppt_第4页
第4页 / 共16页
《Java面向对象程序设计与系统开发》课件第12章 线程处理.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、面向对象程序设计面向对象程序设计与系统开发与系统开发第12章 线程处理2驱动驱动任任务务一一采用线程类Thread实现每隔一分钟就提示用户使用了ATM机的时间。3目标及知识点目标及知识点线程的基本概念线程的基本概念1 1StringBuffer类类2线程线程sleep()方法的使用方法的使用 34 走近线程走近线程 5 Thread线程类线程类 v Thread是java.lang包里的管理线程的类。它的每一个实例对象就对应着一个线程,一个线程能承担一项独立的工作。/*MyThread类继类继承了承了Thread类类所以也成所以也成为为了一个了一个线线程程类类*/public class My

2、Thread extends Thread/*这这个方法是个方法是线线程程类类运行的入口,要运行的入口,要实现逻辑实现逻辑必必须须要重写要重写这这个方法个方法*/public void run()System.out.println(我是我是线线程在程在说话说话);6 Thread线程类线程类 v Thread是java.lang包里的管理线程的类。它的每一个实例对象就对应着一个线程,一个线程能承担一项独立的工作。/*MyThread类继类继承了承了Thread类类所以也成所以也成为为了一个了一个线线程程类类*/public class MyThread extends Thread/*这这个

3、方法是个方法是线线程程类类运行的入口,要运行的入口,要实现逻辑实现逻辑必必须须要重写要重写这这个方法个方法*/public void run()System.out.println(我是我是线线程在程在说话说话);7启动线程启动线程 v 一个新创建的线程并不自动开始运行。你必须调用它的start()方法。v 调用start()方法使线程处于可运行状态,这意味着它可以由JVM(Java虚拟机)调度并执行。但这并不意味着线程就会立即运行。public class Test public static void main(String args)MyThread p=new MyThread();/

4、生成了一个生成了一个线线程,放到了内存中程,放到了内存中p.start();/注意,注意,这这里里调调用用Thread中的中的start()方法,方法,该该方法将去方法将去调调用用run()方法方法System.out.println(我是主程序在我是主程序在说话说话);运行结果:运行结果:我是主程序在说话我是主程序在说话我是线程在说话我是线程在说话8线程中的join方法v 那么怎么描述两个并行的任务在某个时候要求其中一个任务必须要另一个任务完成的基础上才能完成,就如同我看书的时候被送快递的打断,必须要先出去领了快递让送快递的任务完成才能继续看书。要描述这样的情况,可以使用线程中的join()

5、方法实现。public class Test public static void main(String args)MyThread p=new MyThread();/生成了一个生成了一个线线程,放到了内存中程,放到了内存中p.start();try p.join();/将将这这个个线线程加入到主程序当中,只有当程加入到主程序当中,只有当这这个个线线程程执执行行 完以后主程序才完以后主程序才继续继续向下向下执执行行 catch(InterruptedException e)e.printStackTrace();System.out.println(我是主程序在我是主程序在说话说话);运行

6、结果:运行结果:我是线程在说话我是线程在说话我是主程序在说话我是主程序在说话9线程中的sleep方法v 线程根据其优先级由虚拟机自行判断某个时间段该哪个线程执行,一般来说我们是不用去干预的。但现实生活中存在着需要干预线程的情况,还是比如我在飞机上,我要每隔1个小时打个盹(让线程停止),在Java语言中如何描述?这就要用到线程中的sleep()方法。public class MyThread extends Thread/*这这个方法是个方法是线线程程类类运行的入口,要运行的入口,要实现逻辑实现逻辑必必须须要重写要重写这这个方法个方法*/public void run()trysleep(100

7、0);/参数是毫秒,参数是毫秒,1000表示表示1秒秒catch(Exception e)System.out.println(我是我是线线程在程在说话说话);10任务实现任务实现1分析分析业务业务流程流程23分析抽象出各个类;分析抽象出各个类;按照类图构建线程类;按照类图构建线程类;45实现类中具体方法实现类中具体方法;在项目中生成一个线程,并使其运行在项目中生成一个线程,并使其运行;11驱动驱动任任务务二二如果上一节的任务中TimeThread线程类已经继承了其他类,由于Java只能单继承,那么我们没有办法再继承Thread类,此时我们可以用线程接口Runnable来实现相同的功能。12目

8、标及知识点目标及知识点线程接口线程接口Runnable的使用的使用 1 1如何终止线程的运行如何终止线程的运行 213Runnable接口v 由于Java不能用extends实现多继承,如果一个类已经继承了其他类而还想成为一个线程的话,就要用到java.lang包里的Runnable接口。/*Driver类继类继承于承于People类类,实现实现了一个了一个Runnable接口接口*/public class Driver extends People implements Runnable在在实现这实现这个接口的同个接口的同时时必必须须要要实现实现接口中的接口中的run方法如下所示:方法如下

9、所示:/*Driver类继类继承于承于People类类,实现实现了一个了一个Runnable接口接口*/public class Driver extends People implements Runnablepublic void run()14终止一个线程终止一个线程 v当run方法执行完之后,该线程就自动停止运行。因此我们想让线程一直执行的时候我们一般是采用设置run方法为一个死循环:while(true)v要想终止如上的一个被设置为死循环的线程,只要将要想终止如上的一个被设置为死循环的线程,只要将其其true条件改变为条件改变为flase即可。如上一个任务中我们设即可。如上一个任务中

10、我们设置置5分钟线程自动结束只需要添加如下黑体字部分代分钟线程自动结束只需要添加如下黑体字部分代码,更改码,更改while循环的条件值。循环的条件值。public void run()while(!isEnd)/如果如果线线程没有程没有结结束束try sleep(60000);/线线程睡程睡1分分钟钟,1000为为1秒秒 catch(InterruptedException e)e.printStackTrace();number+;/计计数器增加数器增加1System.out.println(您已您已经经使用使用+number+分分钟钟);if(number=5)isEnd=false;15任务实现任务实现1分析分析业务业务流程流程23分析抽象出各个类;分析抽象出各个类;按照类图构建线程类;按照类图构建线程类;45实现类中具体方法实现类中具体方法;在项目中生成一个线程,并使其运行在项目中生成一个线程,并使其运行;16课堂总结课堂总结

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《Java面向对象程序设计与系统开发》课件第12章 线程处理.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|