Java第七章多线程机制

Java第七章多线程机制

ID:40847934

大小:329.51 KB

页数:21页

时间:2019-08-08

Java第七章多线程机制_第1页
Java第七章多线程机制_第2页
Java第七章多线程机制_第3页
Java第七章多线程机制_第4页
Java第七章多线程机制_第5页
资源描述:

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

1、Java程序设计多线程机制内容线程的概念多线程的实现方法线程的状态和生命周期线程的调度与优先级线程的同步机制线程的概念程序:静态的,计算机语言编写的代码。进程:动态的,程序的一次执行过程;每一个进程有独立的内存空间和系统资源。多进程:操作系统中多个程序同时执行。线程:程序中单个顺序的流控制,是最小的执行单位;同类的多个线程共享一块内存空间和一组系统资源;线程独享的资源只有:寄存器,系统堆栈。多线程:程序中多个片断同时执行。多线程的实现方法(1)扩展java.lang.Thread类创建一个新类来扩展Thread类,然后再创建该类的实

2、例。当一个类继承Thread时,它必须覆盖父类的run()方法,这个run()方法是新线程的入口。调用start()方法启动新线程执行。classMythreadextendsThread{publicvoidrun(){/*覆盖父类的方法*/}}多线程的实现方法(2)实现java.lang.Runnable接口创建一个实现Runnable接口的类,该接口中只有一个方法:publicvoidrun();已实现的run方法称为线程体,而实现了Runnable接口的对象称为线程的目标对象将实现了Runnable接口的类的实例作为Thre

3、ad类构造函数的参数创建线程对象,调用该对象的start()方法启动线程,classMythreadimplementsRunnable{publicvoidrun(){/*实现该方法*/}}多线程实现示例Thread1.javaRunnable1.java注意:两个线程交替运行。外观上显现出并发的特性。后启动的线程可能先执行,运行结果具有不确定性。即,线程启动后并不是马上运行,是否运行取决于系统调度。main本身也是一个线程。Thread类类声明:构造方法publicThread()publicThread(String name

4、)publicThread(Runnable target)publicThread(Runnable target,String name)类方法publicstaticThreadcurrentThread()publicstaticintactiveCount()publicstaticintenumerate(Thread[] tarray)publicclassThreadimplementsRunnable{….}实例方法publicfinalStringgetName()publicfinalvoidsetName(S

5、tring name)publicvoidstart()publicfinalbooleanisAlive()两种创建线程方法的比较继承Thread类:简单,但由于Java只允许单重继承,因此不能再继承其他的类实现Runnable接口:当一个线程已继承了其他类时,只能采用实现Runnable接口的方法来创建线程。线程的状态和生命周期(1)线程的生命周期:线程从创建、运行到消亡的过程线程的状态:线程处在生命期的阶段。创建就绪运行阻塞死亡创建就绪阻塞运行死亡线程的状态和生命周期(2)创建:使用new创建线程对象后处于创建状态,此时系统没

6、有为它分配运行资源。可运行状态:使用start()方法启动一个线程后系统分配除CPU外的资源,线程进入等待队列等候运行。运行中状态:线程占用CPU开始运行。阻塞状态:在线程等待一个事件时,就称其处于阻塞状态。三种情况导致阻塞:publicstaticnativevoidsleep(longmillis)publicfinalvoidwait()输入/输出操作死亡:run()方法结束,可以用以下方法判断线程是否死亡:publicfinalbooleanisAlive()返回true:线程已启动(可运行、运行或阻塞),false:新建或

7、已终止改变线程的状态publicstaticnativevoidsleep(longmillis)使当前线程睡眠millis毫秒publicstaticvoidyield()使当前线程临时暂停执行,使得其他可运行态的同优先级线程有机会运行(使程序的运行不依赖于系统的时间片机制)publicfinalvoidjoin()使得当前线程暂停执行,等待调用该方法的线程对象的线程结束后再继续执行当前线程。publicvoidinterrupt()为当前线程对象的线程设置中断标记,但并不中断线程的运行;若当前线程对象的线程被sleep,wait

8、,join等方法阻塞后,调用该方法将抛出InterruptedException。(这被用于终止一个长时间处于阻塞状态的线程)改变线程的状态示例WelcomSwing.java线程的调度与优先级(1)Java中每一个线程用一个整数表示

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

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

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