- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
线程 目标 了解多线程的概念 掌握如何创建线程 了解死锁的概念 掌握线程同步 掌握使用 wait() 和 notify() 在线程之间进行通信 程序、进程和线程 程序是静止的指令的集合。 进程是程序的一个运行实例,一个进程开始时,操作系统为其分配内存、文件等资源。 线程是进城中的运行单位,用来描述进程的执行。 多任务处理 多任务的处理方式有两种类型:多线程和多进程。 基于线程的多任务处理环境中,线程是最小的处理单位。 基于进程的特点是允许计算机同时运行两个或更多的程序。 基于线程的多任务处理的优点 基于线程所需的开销更少 各个进程需要分配它们自己独立的地址空间 多个线程可共享相同的地址空间并且共享同一个进程 进程间调用涉及的开销比线程间通信多 线程间的切换成本比进程间切换成本低 多线程 多线程 在Java中,一个应用程序可以包含多个线程。每个线程执行特定的任务,并可与其他线程并发执行。 多线程使系统的空转时间最少,提高CPU利用率。 多线程编程环境用方便的模型隐藏CPU在任务间切换的事实。 主线程 在Java程序启动时,一个线程立刻运行,该线程通常称为程序的主线程。 主线程的重要性体现在两个方面: 它是产生其他子线程的线程。 通常它必须最后完成执行,因为它执行各种关闭动作。 创建线程 2-1 通过以下两种方法创建 Thread 对象: - 声明一个 Thread 类的子类,并覆盖 run() 方法。 class CLXThread extends Thread { public void run( ) {} } - 声明一个实现 Runnable 接口的类,并实现 run() 方法。 class CLXThread implements Runnable{ public void run( ) {} } 创建线程 2-2 要触发一个新线程,使用 start() 方法,如:CLXThread thread = new CLXThread(); thread.start(); 在调用 start() 方法时,将创建一个新的控制线程,接着它将调用 run() 方法。 run() 方法中的代码定义执行线程所需的功能。 多线程示例 class ThreadA extends Thread{ public static int i=0; public synchronized void run(){ i++; System.out.println(my thread running. + i); } } public class CLXThread { public static void main(String[] args) { ThreadA t1=new ThreadA(); ThreadA t2=new ThreadA(); t1.start(); System.out.println(t1 start.); t2.start(); System.out.println(t2 start.); } } 线程的状态 2-1 新建 (Born) : 新建的线程处于新建状态。 就绪 (Ready) : 在创建线程后,它将处于就绪状态,等待 start() 方法被调用。 运行 (Running) : 线程在开始执行时进入运行状态。 睡眠 (Sleeping) : 线程的执行可通过使用 sleep() 方法来暂时中止。在睡眠后,线程将进入就绪状态。 等待 (Waiting) : 如果调用了 wait() 方法,线程将处于等待状态。用于在两个或多个线程并发运行时。 线程的状态 2-2 挂起 (Suspended) : 在临时停止或中断线程的执行时,线程就处于挂起状态。 恢复 (Resume) : 在挂起的线程被恢复执行时,可以说它已被恢复。 阻塞 (Blocked) – 在线程等待一个事件时(例如输入/输出操作),就称其处于阻塞状态。 死亡 (Dead) – 在 run() 方法已完成执行或其 stop() 方法被调用之后,线程就处于死亡状态。 线程暂停条件 线程: 线程优先级比较低,因此它不能获得 CPU 时间。 使用 sleep( ) 方法使线程睡眠。 通过调用 wait( ) 方法,使线程等待。 通过调用 yield( ) 方法,线程已显式出让CPU控制权。 线程由于等待一个文件I/O事件被阻塞。 Thread 类中的重要方法 2-1 方法 用途 static int enumerate(Thread [ ] t) 将线程所在的线程组及其子组中所有活动的线程复制到指定数组中,返回线程的个数 final String getName( ) 返回线程的名
您可能关注的文档
最近下载
- Unit 2 Home Sweet Home Section B(2a-2c)课件—人教版英语八年级.pptx VIP
- 六年级下册数学-分类讨论(解析版).pdf VIP
- 乐高推土机8043B(2-2).pdf VIP
- 2024-2025学年中职语文基础模块 上册高教版(2023)教学设计合集.docx
- 公平竞争审查知识竞赛题及答案(50题).docx VIP
- BOOX Tab13墨水平板用户手册(20230110).pdf VIP
- 钢筋集中加工与运输方案.docx VIP
- 危化品名录(2015版).pdf VIP
- 经济学原理曼昆06.ppt VIP
- 危险化学品详细目录(2023版).docx VIP
文档评论(0)