Java程序设计 孙燕 等 6新.pptVIP

  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文档。上传文档
查看更多
第6章 线程及其操作 本章主要内容 线程的实现 线程的定义、线程的模型 线程的状态及调度 线程的状态、线程的调度与优选级、控制线程 多线程程序设计 从Thread类继承 、实现Runnable接口、多线程的同步 Java程序设计流程 本章重点和难点 重点 线程的实现 线程的状态 控制线程 难点 线程的调度 线程的同步 多线程程序设计 线程的实现 线程的概念 多个进程的内部数据和状态都是完全独立的,而多线程是共享一块内存空间和一组系统资源,有可能互相影响 线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小 Java中的线程模型 三部分组成 虚拟的CPU封装在java.lang.Thread类中 CPU执行的代码传递给Thread类 CPU处理的数据传递给Thread类 线程的状态 线程的调度与优选级 线程的优先权 Thread类有3个有关线程优先级的静态常量: . MIN-PRIORITY NOM_PRIORITY MAX-PRIORITY newthread.setPriority(Thread.MIN_PRIORITY) 线程的调度 线程调度器按照线程优先级决定应该调度那个线程执行 Java的线程调度策略是一种基于优先级的抢先式调度 控制线程 run方法 run方法是运行线程的主体,启动线程时,由java直接调用 public void run() Stop方法 停止线程,由小应用程序的stop调用线程的stop newthread.stop() Sleep方法 sleep方法的作用是暂停线程的执行,让其它线程得到机会,sleep要抛出异常,必须抓住。 Try{sleep(100)}catch(InterruptedException e){} 例如:Java小程序中不用Runnable接口仍然可以使用线程(不调用主类的方法和调用主类的方法) 控制线程 isAlive方法 isAlive:判断线程目前是否正在执行状态中 if(newthread.isAlive()) newthread.stop(); resume方法 resume方法要求被暂停得线程继续执行 suspend方法 suspend方法暂停线程的执行 join方法 join方法等待线程执行完毕 thatThread.join();被等待的那个线程不结束,当前线程就一直等待 yield方法 yield方法将执行的权力交给其它线程,自己到队列的最后等待 多线程程序设计 从Thread类继承 将需要独立运行的子任务代码放到从Thread类派生出来的类的run方法中,在主线程中原先调用该子任务的地方创建该线程类的实例,再调用线程类中的start方法启动线程。 分别定义不同的线程类,在各自的run方法中定义线程的工作 class mythread1 extends Thread { public void run{….} } class mythread2 extends Thread { public void run{….} } 在主类中实例化各线程类,并启动线程 public class demo extends Applet { public void init() { mythread t1=new mythread1(); mythread t2=new mythread2(); t1.start(); t2.start();} } 实现Runnable接口 Runnable接口方法 方法run(),实现这个接口,就必须要定义run()方法的具体内容 用户新建线程的操作也由这个方法来决定 public class mythread extends Applet implements Runnable 多线程的同步 对共享对象的访问必须同步,叫做条件变量 Java语言允许通过监视器(有的参考书称其为管程)使用条件变量实现线程同步 监视器阻止两个线程同时访问同一个条件变量,它如同锁一样作用在数据上 多线程的同步 用synchronized来标识的区域或方法即为监视器监视的部分 一个类或一个对象有一个监视器,如果一个程序内有两个方法使用synchronized标志,则他们在一个监视器管理之下 一般情况下,只在方法的层次上使用关键区 多线程的同步 可能出现的问题 生产者比消费者快时,消费者会漏掉一些数据没有取到 消费者比生产者快时,消费者取相同的数据 notify()和wait ()方法用来协调读取的关系

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档