Java多线程机制.ppt

Java多线程机制.ppt

ID:48055311

大小:851.00 KB

页数:37页

时间:2020-01-13

Java多线程机制.ppt_第1页
Java多线程机制.ppt_第2页
Java多线程机制.ppt_第3页
Java多线程机制.ppt_第4页
Java多线程机制.ppt_第5页
资源描述:

《Java多线程机制.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十章多线程机制本章的任务:理解Java的多线程机制编写多线程程序了解线程的调度和控制本章主要内容:1.多线程的概念2.创建线程3.线程的调度与控制4.Java的线程同步机制与生产消费模型10.1多线程的概念为了理解线程的概念,先来了解程序、进程和多任务的概念。10.1.1程序、进程和多任务程序(program)是对数据描述与操作的代码的集合,是应用程序执行的脚本。进程(process)是程序的一次执行过程,是操作系统运行程序的基本单位。程序是静态的,进程是动态的。多任务是指在一个系统中可以同时运行多个程序,即有多个独立运行的任务,每一个任务对应一个

2、进程。10.1.2线程线程是比进程更小的运行单位,是程序中单个顺序的流控制。一个进程中可以包含多个线程。线程是一种特殊的多任务方式。当一个程序执行多线程时,可以运行两个或更多的由同一个程序启动的任务。线程与任何一个程序一样有一个开始、一系列可执行的命令序列、一个结束。在执行的任何时刻,只有一个执行点。线程与程序不同的是线程本身不能运行,它只能包含在程序中,只能在程序中执行。10.1.3多线程多线程是相对于单线程而言的,指的是在一个程序中可以定义多个线程并同时运行它们,每个线程可以执行不同的任务。与进程不同的是,同类多线程共享一块内存空间和一组系统资源

3、,所以,系统创建多线程花费单价较小。因此,也称线程为轻负荷进程。10.1.4线程的生命周期与Java的多线程机制1.线程的生命周期与状态同进程一样,一个线程也有从创建、运行到消亡的过程,称为线程的生命周期。线程有创建(New)、可运行(Runnable)、运行中(Running)、挂起(NotRunnable)、死亡(Dead)五种状态。2.Java的多线程机制java.lang中的线程类Thread封装了所有需要的线程操作控制,有很多方法用来控制一个线程的运行、休眠、挂起或停止。线程的状态在一个线程的生命周期中,它总处于某一种状态中。线程的状态表示

4、了线程正在进行的活动及在这个阶段内线程能完成的任务。注:线程执行调度队列(系统为所有可执行线程设置了一个队列)创建可运行态不可运行态运行态死亡态10.2创建线程对象如何编写一个带有多线程的程序呢?☆一种方法是通过继承线程类Thread来创建线程类,;☆另一个方法是建立一个实现Runnable接口的类来创建线程。10.2.1通过继承Thread类创建线程例10.1在程序中通过继承Thread类创建一个线程子类testThread,通过Thread1主类同时运行两个线程对象t1和t2。运行结果如图所示。classThread1{publicstaticv

5、oidmain(Stringargs[]){testThreadt1=newtestThread("thread1");testThreadt2=newtestThread("thread2");t1.start();t2.start();}}classtestThreadextendsThread{publictestThread(Stringstr){super(str);//调用父类的构造方法为线程对象命名}publicvoidrun(){for(inti=0;i<2;i++){System.out.println(getName()+“在运行

6、阶段");try{sleep(1000);//用休眠1000毫秒来区分哪个线程在运行System.out.println(getName()+“在休眠阶段");}catch(InterruptedExceptione){}}System.out.println(getName()+"已结束");}}说明:(1)Application应用程序运行时总是调用main方法。(2)从输出的结果可以看出两个线程的名字是交替显示的。(3)由继承Thread创建的子类,必须覆盖run方法通过Thread类创建线程子类的格式为:class线程的类名extendsTh

7、read{ publicvoidrun(){程序语句} }10.2.2通过Runnable接口创建线程当一个类是从其他类继承时,如继承Applet类。此时就不能再继承Thread类来创建线程,这时可以通过接口Runnable直接创建线程对象。接口Runnable是一个抽象接口,接口中只声明了一个未实现的run方法。例10.2通过Runnable接口运行线程。运行结果如图所示。importjava.awt.*;importjava.applet.Applet;importjava.util.*;importjava.text.DateFormat;pu

8、blicclassClock2extendsAppletimplementsRunnable{Threadc

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

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

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