文学PPT学习课件学习教案.pptx
《文学PPT学习课件学习教案.pptx》由会员分享,可在线阅读,更多相关《文学PPT学习课件学习教案.pptx(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1文学文学(wnxu)PPT学习课件学习课件第一页,共37页。Java的多线程机制(jzh)2基本概念之一:进程基本概念之一:进程(jnchng)n n进程是正在运行的一个程序n n程序:静态对象进程:动态过程n n操作系统(co zu x tn)为每个进程分配一段内存空间,包括:代码、数据以及堆栈等资源n n多任务的操作系统(co zu x tn)(OS)中,进程切换对CPU资源消耗较大第2页/共37页第二页,共37页。Java的多线程机制(jzh)3基本概念之二:多线程基本概念之二:多线程单线程多线程进程传统进程多线程进程第3页/共37页第三页,共37页。Java的多线程机制(jzh
2、)4基本概念之二:多线程基本概念之二:多线程n n线程是比进程(jnchng)更小一级的执行单元n n线程不能独立存在,必须存在于进程(jnchng)中,各线程间共享进程(jnchng)空间的数据n n线程创建、销毁和切换的负荷远小于进程(jnchng),又称为轻量级进程(jnchng)(lightweight process)。第4页/共37页第四页,共37页。Java的多线程机制(jzh)5线程的调度线程的调度(diod)n n调度策略n n时间(shjin)片n n抢占式:高优先级的线程抢占CPU n nJava的调度方法n n同优先级线程组成先进先出队列,使用时间(shjin)片策略n
3、 n对高优先级,使用优先调度的抢占式策略 12第5页/共37页第五页,共37页。Java的多线程机制(jzh)6线程的生命周期线程的生命周期新创建新创建运行运行(ynxng)(ynxng)状态状态阻塞状态阻塞状态死亡死亡(swng)(swng)状态状态start()start()new()new()sleep()sleep()睡睡眠眠时时间间到到等等待待I/OI/OI/OI/O完完成成wait()wait()notify()notify()notifyAll()notifyAll()对对象象锁锁定定锁锁释释放放异常退出异常退出runrun方法退出方法退出第6页/共37页第六页,共37页。Jav
4、a的多线程机制(jzh)7线程的生命周期(续)线程的生命周期(续)n nNewborn:线程已创建,但尚未执行n nRunnable:(就绪)n n线程已被调度,按优先级和先到先服务原则(yunz)在n n队列中排队等待CPU时间片资源n nRunnnig:正在运行n nBlocked:(阻塞)n n因某事件或睡眠而被暂时性地挂起n nDead:正常/强行中断,退出运行状态第7页/共37页第七页,共37页。Java的多线程机制(jzh)8Java对多线程的支持对多线程的支持(zhch)n n提供用户级的多线程支持n nThread类n nstart(),stop(),run()n nRunna
5、ble 接口(ji ku)n n实现多线程的两种编程方法n n继承 Thread 类n n实现 Runnable 接口(ji ku)第8页/共37页第八页,共37页。Java的多线程机制(jzh)9方法方法(fngf)之一:继承之一:继承Thread类类n nThread类的重要方法:run()n n定义线程的具体操作n n系统调度此线程时自动执行(zhxng)n n初始时无具体操作内容n n如何编程呢?继承Thread类,定义 run()方法第9页/共37页第九页,共37页。Java的多线程机制(jzh)10Easy?Lets try it!n n小例子(l zi):n nSimpleThr
6、ead.javan nTwoThreadsTest.java第10页/共37页第十页,共37页。Java的多线程机制(jzh)11public class SimpleThread extends Thread public SimpleThread(String str)super(str);/创建具以str为名字的线程 public void run()/定义(dngy)run()方法 for(int i=0;i 10;i+)System.out.println(i+getName();try /休眠一段时间 sleep(int)(Math.random()*1000);catch(Int
7、erruptedException e)System.out.println(DONE!+getName();/SimpleThread.javapublic class TwoThreadsTest public static void main(String args)new SimpleThread(Take it myself?).start();new SimpleThread(Give it to police!).start();/TwoThreadsTest.java第11页/共37页第十一页,共37页。Java的多线程机制(jzh)12Thread类类n njava.lang
8、包n n构造函数n nThread();无参数n nThread(String threadname);指定线程实例(shl)名n n线程的优先级控制n n三个常量:MAX(10),MIN(1),NORM_PRIORITY(5)n ngetPriopty(),setPriopty(int nP)n n线程创建时继承父线程的优先级第12页/共37页第十二页,共37页。Java的多线程机制(jzh)13Thread类的有关类的有关(yugun)方法方法n nstart():由Newborn到Runnablen n启动线程n nrun():线程在被调度时执行的操作n nsleep(指定时间(shji
9、n):n n令当前活动线程在指定时间(shjin)段内放弃对CPU控制,使其他线程有机会被执行,时间(shjin)到后重排队n n产生例外InterruptedExceptionn n用try块调用sleep(),用catch块处理例外第13页/共37页第十三页,共37页。Java的多线程机制(jzh)14Thread类的有关类的有关(yugun)方法方法(续续)n nsuspend()suspend():挂起线程,处于阻塞状态:挂起线程,处于阻塞状态n nresume()resume():恢复挂起的线程,重新进入就绪队:恢复挂起的线程,重新进入就绪队列排队列排队n n应用应用(yngyng)
10、(yngyng):可控制某线程的暂停与继续:可控制某线程的暂停与继续n n方法:设一状态变量方法:设一状态变量suspendStatus=falsesuspendStatus=false(初始)(初始)n n暂停:暂停:if(!suspendStatus)if(!suspendStatus)n n T.suspend();suspendStatus=true;T.suspend();suspendStatus=true;n n继续:继续:if(suspendStatus)if(suspendStatus)n n T.resume();suspendStatus=false;T.resume()
11、;suspendStatus=false;n n第14页/共37页第十四页,共37页。Java的多线程机制(jzh)15Thread类的有关类的有关(yugun)方法方法(续续)n nyield():对正在执行的线程n n若就绪(jix)队列中有与当前线程同优先级的排队线程,则当前线程让出CPU控制权,移到队尾n n若队列中没有同优先级的线程,忽略此方法n nstop()n n强制线程生命期结束n nisAlive():返回boolean,表明是否还存在第15页/共37页第十五页,共37页。Java的多线程机制(jzh)16Thread类方法类方法(fngf)总结总结n n启动线程:start
12、()n n有关线程执行的控制(kngzh):n nstop()、suspend()、resume()n n有关调度控制(kngzh)n nThread.sleep(10);/低优先级的线程也可以获得执行n nThread.yield();/同优先级的线程可以获得执行n nsuspend();/暂停本线程第16页/共37页第十六页,共37页。Java的多线程机制(jzh)17方法方法(fngf)之二:之二:Runnablen nRunnable接口n n任何线程类都必须(bx)要实现的一个接口,Thread类也不例外n nrun()方法n n方法二:自定义类实现Runnable接口n n自定义类
13、实现Runnable接口n n使用Thread类的另一构造函数:n nThread(Runnable,String)n n使用start()启动线程第17页/共37页第十七页,共37页。Java的多线程机制(jzh)18方法方法(fngf)之二:之二:Runnable(续)(续)n n例:class A implements Runnablepublic void run().class B public static void main(String arg)Runnable a=new A();Thread t=new Thread(a);t.start();第18页/共37页第十八页,共
14、37页。Java的多线程机制(jzh)19方法方法(fngf)之二:之二:Runnable(续)(续)n n两种方法的选择n n当需要从其他类,如Applet类继承时,使用Runnablen n当编写简单的程序时,可考虑使用继承Thread类n n例:RaceApplet.javan n具体运行结果(ji gu)(线程调度)与平台有关第19页/共37页第十九页,共37页。Java的多线程机制(jzh)20public class Runner extends Thread /赛跑者线程类 public int tick=1;public void run()while(tick 4000000
15、0)tick+;/Runner.java/RaceApplet是一个实现了多线程的Appletpublic class RaceApplet extends Applet implements Runnable final static int NUMRUNNERS=2;/定义赛跑线程的个数 final static int SPACING=20;/声明(shngmng)两个赛跑线程 Runner runners=new RunnerNUMRUNNERS;/声明(shngmng)一个画图线程 Thread updateThread=null;第20页/共37页第二十页,共37页。Java的多线
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文学 PPT 学习 课件 教案
限制150内