Java语言程序设计基础教程(多线程).pptVIP

Java语言程序设计基础教程(多线程).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 多线程 线程简介 Thread类的子类创建线程 实现Runnable接口 基本的线程控制 线程的调度 多线程的互斥与同步 Daemon线程 7.1线程简介 到目前为止所介绍过的各种范例都是单线程程序,也就是启动的Java程序在“同一时间”内只会做一件事。文本模式下最常进行的就是单线程程序。有时需要程序“同时”可以作很多事,即所谓多线程(Multi-thread)程序,在窗口程序、网络程序中常使用多线程功能,了解多线程概念与注意事项是非常重要的。 7.1.1进程与线程 程序是一段静态的代码,它是应用软件执行的蓝本。 进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念。 Java的多线程就是在操作系统每次分时给Java程序一个时间片的CPU时间内,在若干个独立的可控制的线程之间切换。 7.1.2线程的状态 Java使用Thread类及其子类的对象来表示线程,线程在它的一个完整的生命周期中通常要经历如下的4种状态: 1. 创建状态(new Thread) 2. 可运行状态( Runnable ) 3. 不可运行状态(Not Runnable) 4. 死亡状态(Dead) 7.2 Thread类的子类创建线程 用Thread类或子类创建线程对象 . 编写Thread类的子类时,需要重写父类的run方法,其目的是规定线程的具体操作,否则线程就什么也不做,因为父类的run方法中没有任何操作语句。 当JVM将CPU使用权切换给线程时,如果线程是Thread的子类创建的,该类中的run方法就立刻执行。 7.3实现Runnable接口 创建线程的另一个途径就是用Thread类直接创建线程对象。使用Thread类创建线程对象时,常用的构造方法是: Thread(Runnable target); 该构造方法中的参数是一个Runnable类型的接口,因此,在创建线程对象时,必须向构造方法的参数传递一个实现Runnable接口类的实例,该实例对象称为所创线程的目标对象。 【例7-3】通过接口构造线程体 import java.awt.Graphics; import java.util.Date; public class ep7_3 extends java.applet.Applet implements Runnable {// 实现接口 Thread clockThread; public void start() { if (clockThread == null) { clockThread = new Thread(this, Clock); clockThread.start(); // 启动线程 } } public void run() { // run()方法中是线程执行的内容 while (clockThread != null) { repaint(); // 刷新显示画面 try { clockThread.sleep(1000);// 睡眠1秒,即每隔1秒执行一次 } catch (InterruptedException e) { } } } public void paint(Graphics g) { Date now = new Date(); // 获得当前的时间对象 g.drawString(now.getHours() + : + now.getMinutes() + : + now.getSeconds(), 5, 10);// 显示当前时间 } public void stop() { clockThread.stop(); clockThread = null; } } 本程序是Applet,要运行Applet程序,必须定义一个html文件,ep7_3.html文件内容如下: html head title/title /head body applet codebase=. code=ep7_3.class name= width=200 height=100 /applet /body /html 上面这个例子是通过每隔1秒种就执行线程的刷新画面功能,显示当前的时间;看起来的效果

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档