java教学做一体化教程_Java程序设计教学做一体化教程第10章多线程

41528d3028836879cd698677c3999917.gifJava程序设计教学做一体化教程第10章多线程

注意:开始用功了 !1 页配合 例子源代码一起使用Power point 制作:耿祥义 张跃平多线程 《 Java程序设计教学 做 一体化 教程 》 第 10章主要内容3 页10.1 Java中的线程 10.1.1核心知识 _11. 操作系统与进程进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程。操作系统可以同时管理计算机系统中的多个进程,即可以让计算机系统中的多个进程轮流使用 CPU资源(如图 10.1所示),让多个进程共享操作系统所管理的资源,比如让 Word进程和其他的文本编辑器进程共享系统的剪贴板。4 页10.1.1 核心知识 _22.进程与线程没有进程就不会有线程,就像没有操作系统就不会有进程一样。尽管线程不是进程,但在许多方面它非常类似进程,通俗地讲,线程是运行在进程中的 “小进程 ”,如图 10.2所示。一个进程在其执行过程中,可以产生多个线程,这些线程可以共享进程中的某些内存单元(包括代码与数据),并利用这些共享单元来实现数据交换、实时通信与必要的同步操作。具有多个线程的进程能更好地表达和解决现实世界的具体问题,多线程是计算机应用开发和程序设计的一项重要的实用技术。5 页10.1.1 核心知识 _33. Java的多线程机制当 JVM加载代码,发现 main方法之后,就会启动一个线程,这个线程称为 “ 主线程 ” ,该线程负责执行 main方法。如果在 main方法的执行中再创建的线程,就称为程序中的其它线程。如果 main方法中没有创建其他的线程,那么当 main方法执行完最后一个语句,即 main方法返回时, JVM就会结束我们的 Java应用程序。如果 main方法中又创建了其他线程,那么JVM就要在主线程和其他线程之间轮流切换,保证每个线程都有机会使用 CPU资源, main方法即使执行完最后的语句 , JVM也不会结束 Java应用程序, JVM一直要等到 Java应用程序中的所有线程都结束之后,才结束 Java应用程序,如图 10.3所示。 6 页10.1.1 核心知识 _44. Thread类用 Thread类或它的子类创建线程,新建的线程通过调用start()方法申请使用 CPU资源。当 JVM将 CPU使用权切换给线程时,如果线程是用 Thread的子类创建的,那么该子类中的 run()方法就立刻执行。Thread的子类需要重写父类的 run()方法,其原因是 Thread类中的 run()方法没有具体内容, Thread类的子类通过重写 run()方法来体现线程需要完成的任务。 7 页10.1.2 能力目标 在 Java应用程序中使用 Thread类的子类创建新线程 。 8 页10.1.3 任务驱动 阅读下列 Application10_1.java, 以及任务小结对程序运行效果所做的分析。SpeakElephant.java SpeakCar.java 程序运行效果如图 10.4 9 页任务小结 分析上述程序的运行结果。( 1) JVM首先将 CPU资源给主线程主线程在使用 CUP资源时执行了 6个语句后,并将 for循环语句执行到第 1次循环,输出了 “主人 1“ ,这时主线程在使用 CPU资源时,已经执行了 speakElephant.start(); 和 speakCar.start(); 那么, JVM这时就知道已经有 3个线程 main线程、 speakElephant和 speakCar线程,它们需要轮流切换使用 CPU资源了。因而,在 main线程使用 CPU资源执行到 for语句的第 1次循环之后, JVM就将 CPU资源切换给 speakCar线程了。( 2)在 speakElephant、 speakCar和 main线程之间切换JVM让 speakCar、 speakElephant和 main线程轮流使用 CPU资源 .当 main方法中的循环语句执行完毕,即主线程结束,但 Java应用程序还没有结束,因为还有其他线程没有结束。不再输出 “主人 1“ 。( 3) JVM在 speakCar线程和 speakElephant线程之间切换JVM知道主线程不再需要 CPU资源,因此, JVM轮流让 speakCar线程和 speakElephant线程使用 CPU资源。当 Java程序中的所有线程都结束了, JVM结束 Java程序的执行。10 页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值