- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多线程 * 基本概念 多线程—是指同时存在几个执行体,按几条不同的执行线路共同工作的情况。Java语言的一个重要功能特点就是内置对多线程的支持,能同时处理多个任务的功能强大的应用程序。 程序、进程与线程 程序—是指一段静态的代码,它是应用软件执行的蓝本。 进程—是程序的一次动态执行过程,它对应于从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程。 线程—是比进程更小的执行单位。一个进程在执行的过程中,可以产生多个线程,形成多条执行线路。每条线路,即每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念。 * 基本概念 每个进程都有一段专用的内存区域,而线程间可以共享相同的内存单元(包括代码与数据),并利用这些共享单元来实现数据交换、实时通信与必要的同步操作。 基于线程所需的开销更少 多个线程可共享相同的地址空间并且共同分享同一个进程。 进程间调用涉及的开销比线程间通信多。 线程间的切换成本比进程间切换成本低 。 * 多线程 多线程 在Java中,一个应用程序可以包含多个线程 每个线程执行特定的任务,并可与其他线程并发执行 多线程使系统的空转时间最少,提高CPU利用率 * 主线程 在Java程序启动时,主线程立刻运行: 它是产生其他子线程的线程。 通常它必须最后完成执行,因为它执行各种关闭动作。 * 主线程示例 public class MainThread { public static void main(String args[]) { Thread thisThread = Thread.currentThread(); thisThread.setName(主线程); try { for( int counter = 0; counter 10; counter += 2 ) { System.out.println(counter+ +thisThread); Thread.sleep(1000); } } catch ( InterruptedException e) { System.out.println(Hey! I was interrupted); } } } 获得当前线程,即主线程 改变线程的内部名称 输出每个数后暂停1000毫秒 如果有另一个线程中断睡眠,线程可以引发异常。 * 两种方法创建子线程 - 声明一个 Thread 类的子类,并覆盖 run() 方法。 class mythread extends Thread { public void run( ) {/* 重写该方法*/ } } - 声明一个实现 Runnable 接口的类,并实现 run() 方法。 class mythread implements Runnable{ public void run( ) {/* 实现该方法*/ } } * 调用子线程 要触发一个新线程,使用 start() 方法。 在调用 start() 方法时,将创建一个新的控制线程,接着它将调用 run() 方法。 run() 方法中的代码定义执行线程所需的功能。 * 创建线程示例 举例:如何创建子线程 * 线程的状态 新建状态(New) new Thread(..) 就绪状态(runnable) start() 阻塞状态(blocked) 执行状态(running) CPU调度 消亡(Dead) * 线程的状态 新建 (Born) : 新建的线程处于新建状态 就绪 (Runnable) : 在创建线程后,它将处于就绪状态,等待 start() 方法被调用 运行 (Running) : 线程在开始执行时进入运行状态 堵塞(Blocked) : 线程的执行可通过使用 sleep() 方法来暂时中止。在睡眠后,线程将进入就绪状态 死亡 (Dead) – 在 run() 方法已完成执行或其 stop() 方法被调用之后,线程就处于死亡状态。 * 线程优先级(了解) 线程优先级是在 Thread 类中定义的常量: NORM_PRIORITY : 值为 5 MAX_PRIORITY : 值为 10 MIN_PRIORITY : 值为 1 缺省优先级为 NORM_PRIORITY 优先级的方法: final void setPriority(int newp) final int getPriority() * Thread 类中的重要方法 方法 用途 isAlive() 判断线程目前是否正在执行状态中 setPriority() 修改线程的当前优先级 getPriority() 返回线程的优先级
您可能关注的文档
最近下载
- 2026届广州市高三年级阶段训练“劳动与奋斗”作文审题分析与下水文-2026年高考语文写作技巧实战分析与素材运用(全国通用).pdf VIP
- 2024年AI大模型+知识库市场全景报告.pdf VIP
- 第一单第3课国色新尚课件2025人教版初中美术八年级上册.ppt
- 药物临床试验质量管理·广东共识(2025年版).pdf VIP
- 儿童行为量表CBCL.docx VIP
- 换药术基本技能操作规范.pdf VIP
- 第二章施工质量管理体系与措施.docx VIP
- 2025年中国青年志愿者服务日知识竞赛考试题库200题(含答案).docx VIP
- 售后服务方案.docx VIP
- YD-T 2322-2011 数据设备用交流电源分配列柜.pdf VIP
文档评论(0)