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

上传人:本田雅阁 文档编号:2433422 上传时间:2019-03-28 格式:PPT 页数:16 大小:3.23MB
返回 下载 相关 举报
Java面向对象程序设计与系统开发第12章 线程处理.ppt_第1页
第1页 / 共16页
Java面向对象程序设计与系统开发第12章 线程处理.ppt_第2页
第2页 / 共16页
Java面向对象程序设计与系统开发第12章 线程处理.ppt_第3页
第3页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java面向对象程序设计与系统开发第12章 线程处理.ppt》由会员分享,可在线阅读,更多相关《Java面向对象程序设计与系统开发第12章 线程处理.ppt(16页珍藏版)》请在三一文库上搜索。

1、面向对象程序设计与系统开发,第12章 线程处理,2,驱动任务一,采用线程类Thread实现每隔一分钟就提示用户使用了ATM机的时间。,3,目标及知识点,4,走近线程,5,Thread线程类,Thread是java.lang包里的管理线程的类。它的每一个实例对象就对应着一个线程,一个线程能承担一项独立的工作。,/* * MyThread类继承了Thread类所以也成为了一个线程类 * */ public class MyThread extends Thread /* * 这个方法是线程类运行的入口,要实现逻辑必须要重写这个方法 */ public void run() System.out.p

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

3、用start()方法使线程处于可运行状态,这意味着它可以由JVM(Java虚拟机)调度并执行。但这并不意味着线程就会立即运行。,public class Test public static void main(String args) MyThread p = new MyThread();/生成了一个线程,放到了内存中 p.start();/注意,这里调用Thread中的start()方法, 该方法将去调用run()方法 System.out.println(“我是主程序在说话“); ,运行结果: 我是主程序在说话 我是线程在说话,8,线程中的join方法,那么怎么描述两个并行的任务在某个

4、时候要求其中一个任务必须要另一个任务完成的基础上才能完成,就如同我看书的时候被送快递的打断,必须要先出去领了快递让送快递的任务完成才能继续看书。要描述这样的情况,可以使用线程中的join()方法实现。,public class Test public static void main(String args) MyThread p = new MyThread();/生成了一个线程,放到了内存中 p.start(); try p.join();/将这个线程加入到主程序当中,只有当这个线程执行 完以后主程序才继续向下执行 catch (InterruptedException e) e.prin

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

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

7、类已经继承了其他类而还想成为一个线程的话,就要用到java.lang包里的Runnable接口。,/*Driver类继承于People类,实现了一个Runnable接口*/ public class Driver extends People implements Runnable 在实现这个接口的同时必须要实现接口中的run方法如下所示: /*Driver类继承于People类,实现了一个Runnable接口*/ public class Driver extends People implements Runnable public void run() ,14,终止一个线程,当run方法

8、执行完之后,该线程就自动停止运行。因此我们想让线程一直执行的时候我们一般是采用设置run方法为一个死循环: while(true) 要想终止如上的一个被设置为死循环的线程,只要将其true条件改变为flase即可。如上一个任务中我们设置5分钟线程自动结束只需要添加如下黑体字部分代码,更改while循环的条件值。,public void run() while (!isEnd) /如果线程没有结束 try sleep(60000);/线程睡1分钟,1000为1秒 catch (InterruptedException e) e.printStackTrace(); number+;/计数器增加1 System.out.println(“您已经使用“+number+“分钟“); if(number=5) isEnd=false; ,15,任务实现,分析业务流程,分析抽象出各个类;,按照类图构建线程类;,实现类中具体方法 ;,在项目中生成一个线程,并使其运行 ;,16,课堂总结,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1