欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java2实用教程课件(第3版第9章).ppt

    • 资源ID:87447256       资源大小:85.50KB        全文页数:17页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java2实用教程课件(第3版第9章).ppt

    Java 2实用教程(第版)教学课件n主讲人:杨云帆第章Java多线程机制多线程机制9.1 Java中的线程中的线程9.2 Thread的子类创建线程的子类创建线程9.3 使用使用Runable接口接口9.4 线程的常用方法线程的常用方法9.6 线程同步线程同步9.7 在同步方法中使用在同步方法中使用wait()、notify 和和notifyAll()方法方法9.8 挂起、恢复和终止线程挂起、恢复和终止线程9.1 Java中的线程 n程序程序是静态的代码。n进程进程是程序的一次动态执行过程。n线程线程是比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程,每个线程也是一个产生、存在和消亡的动态过程。nJava的多线程多线程:在一个CPU时间片内,若干个java线程轮流切换执行。n当当JVM加载代码,发现加载代码,发现main方法之后,就会启动方法之后,就会启动“主主线程线程”,该线程负责执行,该线程负责执行main方法。方法。n在在main方法的执行过程中可创建方法的执行过程中可创建其它线程其它线程。n如果如果main方法中没有创建方法中没有创建其它其它线程线程,那么当,那么当main方法方法执行完最后一个语句,执行完最后一个语句,JVM就会结束就会结束Java应用程序。应用程序。n如果如果main方法中又创建了方法中又创建了其它其它线程线程,那么,那么JVM就要在就要在主线程和其它线程之间轮流切换,保证每个线程都有机主线程和其它线程之间轮流切换,保证每个线程都有机会使用会使用CPU资源,直到程序中的所有线程都结束,资源,直到程序中的所有线程都结束,JVM才结束才结束Java应用程序。应用程序。2.线程的生命周期 例子9.1用用Thread类或其子类声明并创建线类或其子类声明并创建线程对象时,线程对象处于新建状态。程对象时,线程对象处于新建状态。此时它已经有了相应的内存空间和其此时它已经有了相应的内存空间和其他资源。他资源。线程创建后仅仅是占有了内存资源,在线程创建后仅仅是占有了内存资源,在JVM管理的线程中还没有这个线程,管理的线程中还没有这个线程,此此线程必须调用线程必须调用start()方法()方法通知通知JVM又又有一个新线程排队等候切换了。有一个新线程排队等候切换了。当当JVM将将CPU使用权切换使用权切换给该线程时,此线程就可给该线程时,此线程就可以脱离主线程独立运行以脱离主线程独立运行(即即执行执行run方法方法)。有有4种原因中断线程:种原因中断线程:CPU资源资源从当前线程切换给其他线程、从当前线程切换给其他线程、执行了执行了sleep(int millsecond)方法、执行了方法、执行了wait()方法、进方法、进入阻塞状态入阻塞状态。run方法结束方法结束9.2 用Thread类的子类创建线程对象nThread类的子类需要重写父类的run方法,目的是定义线程的具体操作,否则线程就什么也不做,因为父类的run方法中没有任何操作语句。n如果线程对象是Thread子类创建的,当JVM将CPU使用权切换给线程时,线程对象立刻调用所属类的run方法执行。nclass AA extends Threadnpublic void run()/重写run()方法nn class BB extends Threadnpublic void run()/重写run()方法nnpublic class AB nnpublic static void main(String args)nAA aa=new AA();nBB bb=new BB();naa.start();nbb.start();n n例子9.29.3用Thread类创建线程对象nJava.lang包中有Thread类和Runnable接口,Runnable接口中定义了接口方法run();nThread类的构造方法:Thread(Runnable target)参数是一个Runnable接口,因此,在创建线程对象时必须向构造方法的参数传递一个实现Runnable接口的类的实例对象,该实例称作线程的目标对象目标对象。n当线程调用start()方法排队后,一旦轮到它享用CPU资源,线程的目标对象目标对象就会自动调用所属类实现的接口方法run。interface Runnablevoid run();查API文档 class RR implements Runnableint m;public void run()/类实现的接口方法public class AB public static void main(String args)RR rr=new RR();Thread aa=new Thread(rr);Thread bb=new Thread(rr);aa.start();bb.start();目标对象rr的成员变量m成为线程aa,bb共享的数据单元例子9.39.4线程对象的常用方法1start()线程对象调用该方法将启动线程,使之从新建状态进入就绪队列排队,一旦轮到它享用CPU资源时,就可以脱离创建它的线程独立开始自己的生命周期了。2run()nThread类中,run()方法没有具体内容,所以用户程序需要创建自己的Thread类的子类,并重写run()方法来覆盖原来的run()方法。当run方法执行完毕,线程就变成死亡状态。nRunnable接口中的的run()方法,必须被创建目标对象的类实现。3sleep(int millsecond)n线程运行期间,调用sleep方法放弃CPU资源,休眠一段时间。n休眠时间的长短由sleep方法的参数决定,millsecond是毫秒为单位的休眠时间。n如果线程在休眠时被打断,JVM就抛出InterruptedException异常。因此,必须在trycatch语句块中调用sleep方法。4isAlive()n线程处于“新建”状态时,线程调用isAlive()方法返回false。n线程运行状态,并未进入死亡状态之前,线程调用isAlive()方法返回true。n线程进入“死亡”状态后(线程实体内存被释放),线程仍可以调用方法isAlive(),这时返回的值是false。5currentThread()nThread类中的类方法,可以用类名调用,该方法返回当前正在使用CPU资源的线程对象。6interrupt()n用来“吵醒”休眠的线程。当一些线程调用sleep方法处于休眠状态时,一个占有CPU资源的线程可以让休眠的线程调用interrupt 方法“吵醒”自己.9.6线程同步n线程同步线程同步指几个线程调用一个同步方法(synchronized修饰的方法)。n同步机制同步机制 当线程A调用一个同步方法时,其他线程想调用这个方法就必须等待,直到线程A 使用完该方法(除非线程A调用wait()主动让出CUP资源)。9.7在同步方法中使用wait()、notify 和notifyAll()方法n等待与通知等待与通知一个线程在使用同步方法时,可能根据问题的需要,必须调用wait()方法使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法。其它线程用完这个同步方法时,应当执行notifyAll()方法通知所有要使用该同步方法而处于等待的线程结束等待。例子9.14

    注意事项

    本文(Java2实用教程课件(第3版第9章).ppt)为本站会员(hyn****60)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开