14 Java多线程.pptVIP

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
14 Java多线程

多线程间资源协调 class Reader extends Thread { private MessageBoard mBoard; public Reader(MessageBoard m) { mBoard = m; } public void run() { String s = ; boolean reading = true; while( reading ){ s = mBoard.read(); System.out.println(Reader read: + s); if( s.equals(logoff) ) reading = false; } try{ sleep( 10000 ); } catch (InterruptedException e) { } } } * 多线程间资源协调 * class Writer extends Thread { private MessageBoard mBoard; private String messages[ ]= {a,b,c,d,e}; public Writer(MessageBoard m) { mBoard = m; } public void run() { for (int i = 0; i messages.length; i++) { mBoard.write(messages[ i ]); System.out.println(Writer wrote: + messages[i] ); try { sleep((int)(Math.random() * 100)); } catch (InterruptedException e) { } } mBoard.write(logoff); } } 死锁 死锁问题 如果你的持有一个锁并试图获取另一个锁时,就有死锁的危险。解决死锁问题的方法:给条件变量施加排序 * daemon线程 什么是daemon(守护)? 例如:在客户/服务器模式下,服务器的作用是等待用户发来请求,并按请求完成客户的工作 守护线程是为其它线程提供服务的线程 守护线程一般应该是一个独立的线程,它的run()方法是一个无限循环. 守护线程与其它线程的区别是,如果守护线程是唯一运行着的线程,程序会自动退出 * daemon 客户端 服务器端 request 守护线程 守护线程 运行在程序后台的线程,程序的主线程main不会是守护线程。 当正在运行的线程都是守护线程时,Java 虚拟机退出,例如垃圾回收器 标记守护线程 public final void setDaemon(boolean?on) 测试守护线程 public final boolean isDaemon() * 小结 1. 实现线程有两种方法: 实现Ruannable接口 继承Thread类 当新线程被启动时,java调用该线程的run方 法,它是Thread的核心 线程由四个状态:新生,运行,暂停,死亡 线程间的通信方式由三种:完全共享数据,通过监视器,通过join 两个或多个线程竞争资源时,需要用同步的方法协调资源 多个线程执行时,要用到同步方法,即使用 synchronized 关键字设定同步区 wait和notify起协调作用 守护进程的特点是当程序中只剩它自己时,会自动中止 * * * * * * Java多线程 * 目标 多线程基本概念 创建线程的方式 线程的挂起与唤醒 多线程问题 * 程序 进程 线程 * 程序 代码的集合 进程 代码的一次执行 线程 进程中一个独立的单一的执行流程 单个进程执行的多个任务 多任务 * 抢占式多任务 直接中断而不需要事先和被中断程序协商 协作式多任务 只有在被中断程序同意交出控制权之后才能执行中断 多任务处理 * 多任务处理有两种类型: 基于进程 基于线程 进程是指一种“自包容”的运行程序,有自己的地址空间;线程是进程内部单一的一个顺序控制流 基于进程的特点是允许计算机同时运行两个或更多的程序 基于线程的多任务处理环境中,线程是最小的处理单位 * 基于线程所需的开销更少 在多任务中,各个进

文档评论(0)

zhiminwei + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档