Java面向对象程序设计与应用开发教程第七章Java多线程

上传人:w****i 文档编号:92363569 上传时间:2019-07-09 格式:PPT 页数:22 大小:200.50KB
返回 下载 相关 举报
Java面向对象程序设计与应用开发教程第七章Java多线程_第1页
第1页 / 共22页
Java面向对象程序设计与应用开发教程第七章Java多线程_第2页
第2页 / 共22页
Java面向对象程序设计与应用开发教程第七章Java多线程_第3页
第3页 / 共22页
Java面向对象程序设计与应用开发教程第七章Java多线程_第4页
第4页 / 共22页
Java面向对象程序设计与应用开发教程第七章Java多线程_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《Java面向对象程序设计与应用开发教程第七章Java多线程》由会员分享,可在线阅读,更多相关《Java面向对象程序设计与应用开发教程第七章Java多线程(22页珍藏版)》请在金锄头文库上搜索。

1、1,第七章 Java多线程,2,介绍Java多线程,包括线程的状态、生命周期、常用方法及线程的实现等。多线程是Java语言的一个很重要的特点。在一个Java程序中,我们可以同时并行运行多个相对独立的线程。,基本内容 线程的定义 线程常用方法 线程的实现 本讲重点: 利用Thread类的子类来创建线程 用Runnable接口来创建线程,本讲概要,7.1 线程的概念,线程(Thread) :是一个执行中的程序。 程序是静态的。 线程是动态的。,多线程就是同时执行一个以上的线程,一个线程的执行不必等待另一个线程执行完才执行,所有的线程都可能发生在同一时刻。,进餐队列,服务员,7.1.1 线程的状态与

2、生命周期,新建线程在它的一个完整的生命周期内通常要经历五种状态。通过线程的控制与调度可使线程在这几种状态间转化,如下图所示。,图 线程的生命周期与线程的状态,7.1.1 线程的状态与生命周期,1新建状态(Newborn) 2就绪状态(Runnable) 3运行状态(Running) 4阻塞状态(Blocked) 5消亡状态(Dead),7.1.2 线程的常用方法,start() 方法 run()方法 sleep()方法 stop()方法,将线程转入可运行状态(就绪状态),等待JVM调度安排,一旦轮到它来享用CPU资源时,就可以进入运行状态。 。,暂停线程的执行,让其他线程得到机会,sleep(

3、)在一定条件下会抛出受检查异常,必须用try.catch捕获处理,或用throws语句声明抛出。,run()是 Thread 最重要的方法,是线程运行体。想让线程做事,必须重写 run()方法。,stop()方法可结束线程。,线程的优先级,优先级:在多线程系统中,每个线程都 被赋予一个执行优先级。优先级决定了线程被CPU执行的优先顺序。,7.1.3 线程的实现,一种是继承java.lang包中的Thread类, 二是用户在定义自己的类中实现Runnable接口。,Java中实现多线程的方法有两种,,7.1.3 继承Thread类创建线程,Java程序语言中的基本类库中已定义了Thread这个基

4、本类,内置了一组方法,使程序利用该类提供的方法,去产生一个新的线程、执行一个线程、终止一个线程的工作,或是查看线程的执行状态。,public class MyThread extends Thread String s; int n; public MyThread(String str,int num) s=str; n=num; public void run() for(int i=0;in;i+) System.out.println(s); public static void main(String args) MyThread threadA=new MyThread(“Thre

5、adA”,30);/创建线程 MyThread threadB=new MyThread(“ThreadB”,20);/创建线程 threadA.start(); /启动线程 threadB.start(); /启动线程 ,【例7-1】通过继承Thread类来实现多线程,7.1.3 用Runnable接口来创建线程,Runnable接口是定义在java.lang包中的一个接口,其中只提供了一个抽象方法run()的声明。 Runnable接口只有一个方法run(),用户可以声明一个类并实现Runnable接口,并定义run()方法,将线程代码写入其中,就完成了这一部分的任务。,public cl

6、ass MyRunnable implements Runnable String s; int n; public MyRunnable(String str,int num) s=str; n=num; public void run() for(int i=0;in;i+) System.out.println(s); public static void main(String args) MyRunnable threadA=new MyRunnable(“ThreadA“,30); MyRunnable threadB=new MyRunnable(“ThreadB“,20); n

7、ew Thread(threadA).start(); new Thread(threadB).start(); ,【例7-2】通过实现接口Runnable来实现多线程,功能介绍 编程思路 程序代码 运行结果与总结,7.2 线程应用开发篇,1 功能介绍,我们在打字练习软件中都见过,文字的自动循环显示功能,在此我们来实现如图、所示的文字循环显示的功能。,2 编程思路,界面设计 就是用来显示文字的界面,正如上图所看到的。本例中界面设计比较简单,只需要用到窗体类JFrame和标签类JLabel,窗体类是用来创建主窗体对象,标签类是用来创建在窗体上显示文字的标签对象的。,2 编程思路,文字自动变化的功

8、能 要使文字自动改变,在此,我们设计一个线程类,在run方法中循环改变文字即可。问题的关键是如何将改变的文字显示在标签对象中。,采用在创建线程对象时,通过构造方法,将标签对象传给线程对象,这样线程对象就可以用改变的文字来设置标签对象应显示的内容,线程对象的创建我们放在窗体类的构造方法中来实现,3 程序代码,以下是系统每个类的功能介绍(代码见源程序) 1、线程类(WordThread) 实现文字的循环,并设置标签对象的内容。 2、窗体类(ThreadFrame) 就是用来显示文字的界面 3、主类( ThreadWordMainClass ) 在主方法中创建窗体对象并显示出来。,4 运行结果与总结,运行结果见程序演示。 在本例中,我们利用线程技术实现了文字的循环显示的功能,线程的作用是一个程序同时可使用多个线程来完成不同的任务。因此如果很好地利用线程,可以大大简化应用程序设计。,谢谢!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号