- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
jav嚄a培训第九章线程
1 第9章 线程 9.1基本概念 9.2Java线程 9.3线程状态 9.4线程优先级 9.5线程同步 9.1 基本概念 什么是进程? 进程就是一个在内存中独立运行的程序,有自己的地址空间 。 “多任务”:指操作系统能同时运行多个进程(程序)。如WIN2K系统可以同时运行写字板程序、画图程序、WORD、EXCEL等。 线程: 是进程内部单一的一个顺序控制流。 多线程的优势 减轻编写交互频繁、涉及面多的程序的困难。 程序的吞吐量会得到改善。 有多个处理器的系统,可以并发运行不同的线程。(否则,任何时刻只有一个线程在运行) JAVA线程的概念模型 虚拟的CPU,由java.lang.Thread类封装和虚拟 CPU所执行的代码,传递给Thread类对象。 CPU所处理的数据,传递给Thread类对象。 线程体 Java的线程是通过java.lang.Thread类来实现的。 每个线程都是通过某个特定Thread对象所对应的方法run( )来完成其操作的,方法run( )称为线程体(即线程的可执行代码)。 主线程 在任何Java程序启动时,一个线程立刻运行(即mian方法对应的线程),该线程通常称为程序的主线程。 主线程的特点: 它是产生其他子线程的线程。 它不一定是最后完成执行的线程,子线程可能在它结束之后还在运行。 9.2 Java线程 创建线程方法(两种) 声明一个 Thread 类的子类,并覆盖 run() 方法。 class mythread extends Thread { public void run( ) {/* 覆盖该方法*/ } } 声明一个实现 Runnable 接口的类,并实现 run() 方法。 class mythread implements Runnable{ public void run( ) {/* 实现该方法*/ } } 用start()方法启动线程: Thread t1 = new Thread(); T1.start(); (2)实现Runnable接口 扩展 public static void main(String args[ ]) { HelloRunner r = new HelloRunner(); Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); } 9.3线程的状态 线程共有下面4种状态: new(新建):当你用new创建一个线程时,该线程尚未运行。 runnable(可运行):一旦调用了start方法,该线程便是一个可运行的线程。可运行的线程可以尚未执行,也可以正在执行,取决于线程调度的结果 blocked(被中断运行):当出现下列操作之一时,线程便进入中断状态: 有人调用该线程的sleep()方法; 该线程调用了wait()方法; 该线程调用了一个在输入输出时中断的操作,也就是说,在输入和输出操作完成之前,该操作不会返回到它的调用程序; 该线程试图锁定一个当前被另一个线程锁定了的对象 dead(死亡):由于下面两个原因,线程将变成死线程: 由于run方法的正常退出而自然死亡; 没有捕获到的异常事件终止了run方法的执行,从而导致线程突然死亡; 线程的状态转移 线程常用方法 9.5 线程同步 为何同步? 线程可以共享数据 多个线程访问同一个对象,访问同一个方法,修改该对象的属性 锁标志:与每个对象相关联的标志 synchronized 使用该关键字与对象锁标志交互 线程调用synchronized方法时,对象转入“锁定”状态 保护机制:加锁标志、释放锁标志 9.6 线程交互 生产者-消费者问题 wait方法( Object类) 当前对该对象访问的线程wait,释放对象的锁,并被放入该对象的等待池; 只有得到对象锁的线程才能调用wait,因此调用wait的语句必须位于synchronized语句块中; 由其他线程调用notify/notifyAll方法唤醒 notify:唤醒一个正在wait的线程 notifyAll:唤醒所有的正在wait的线程 Java语言编程 Java语言编程 文件 输入输出装置 各种系统资源 数据区段 程序区段 只有一个地方在执行 文件 输入输出装置 各种系统资源 数据区段 程序区段 同时有数个地方在执行 传统的进程 多线程的任务 多线程 关系:一个进程包含一个或多个线程 代 码 数 据 虚拟CPU Java线程
您可能关注的文档
最近下载
- JingChaDaXue《灭火救援指挥》期末试卷(A)参考答案.docx VIP
- QC小组--提高抹灰工程施工质量一次合格率.ppt
- 2021-2022学年江苏省淮安市部编版四年级上册期末考试语文试卷.docx
- 2024译林版三年级英语上册期末专项训练:句子排序.pdf VIP
- 2022-2023学年济南市市中区九年级上学期期末化学试卷(含答案解析).docx
- 2023-2024学年福建省厦门市思明区莲花中学七年级(上)期末数学试卷及答案解析.pdf
- 家庭情况调查表【范本模板】.pdf VIP
- 北师大版(2024新版)七年级上册生物期末模拟练习试卷(含答案解析).docx
- 稠油油藏水平井堵水调剖技术研究应用.ppt
- 1_清稿1-质量管理体系认证规则(征求意见稿)V1.1.doc
文档评论(0)