- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 线程 了解线程在其生命周期中状态的转换; 会用两种方法熟练创建线程; 能熟练运用同步 12.1 线程和进程 现代操作系统都支持多任务,主要有两种形式:基于线程和基于进程; 从本质上说,进程就是独立运行的程序,有独立的指令序列,独立的数据空间和资源; 线程则是依附于进程存在的独立的指令序列,一个进程中可以有多个线程。这些线程共享进程的数据和资源,线程有独立的生命周期; 因为没有存储空间的交换,线程间的切换优于进程,因此尽量用多线程。 Java中线程分为:用户线程和守护线程,特点如下: 用户线程可以转换为守护线程,转换时机只有在新建态和终止态进行; 守护线程运行于系统后台,一般是为用户线程服务,用户线程运行于系统前台,当所有的用户线程都终止时,JVM会杀死守护线程。 单线程实例 class SingleThread { private String id; public SingleThread (String str){ id = str; } public void run(){ for(int i=0; i4; i++){ for(int j=0; j100000000; j++); System.out.println(id+ is running..); } } } class Test { public static void main(String args[]){ SingleThread dog = new SingleThread (doggy); SingleThread cat = new SingleThread (kitty); dog.run(); cat.run(); } } 12.2 线程的状态及其生命周期 新建态:用new语句创建一个Thread对象时。该状态的线程不会立即被执行,但会分配系统资源; 就绪态:当线程调用start方法后,CPU会为其分配相应的时间,这时线程就绪了; 运行态:当线程内的代码块开始执行时,该线程便开始运行。一旦线程开始运行,它不必始终保持运行状态,因此很多书中把就绪态和运行态统称为可运行状态; 阻塞/挂起态:有人调用该线程的sleep()方法;该线程调用了wait方法;该线程试图锁定一个当前被另一个线程锁定了的对象;有人调用了该线程的suspend方法; 终止状态:由于run方法的正常退出而自然死亡;没有抓取到的异常事件终止了run方法的执行,从而导致线程突然死亡;有人调用了该线程的stop方法。 12.3 线程的优先级 对新建的线程通常继承其父类的优先级。用户可以通过setPriority方法来修改系统自动设定的线程优先级。 线程优先级的使用原则是与系统有着密切关系的,当JVM取决于主机平台的线程机制时,线程的调度完全受线程机制的支配。 12.4 线程的创建 Thread类:它是线程类的超类,它是一个线程有生命周期,继承它的类本身也是一个线程; Runnable接口:它只定义了线程的行为,由实现其run方法来实现,但它没有线程的生命周期,实现它的类本身不是一个线程; 启动线程时,都应调用线程的start方法。 12.4.1 继承Thread类 覆盖其run方法,其余方法继承Thread的 注意在上页的程序代码中,不能直接调用run方法,这样只是把run方法运行一遍而已,并没有激活线程。正确的方式是调用由Thread类继承而来的start方法,然后由这个方法在计划表(scheduler)中登录这个线程,最后这个线程开始运行时,run方法自然会被调用。 不管是继承Thread创建线程,还是实现Runnable接口创建线程,都应该调用start方法启动线程; 由结果可以看出,这两个线程是一起运行的。但哪一个字符串先出现则不一定,看谁抢到CPU的资源。 12.4.2 实现Runnable接口 当一个类已经继承了另一个类时,可通过实现Runnable接口创建线程; 用实现Runnable接口创建线程时,可以使多个线程共享同一资源; 用实现Runnable接口创建线程时,因为本类没有线程的生命周期,因此必须新建一个线程。 12.5 Thread类 class MultThread extends Thread { private String id; public MultThread (String str) { id = str; } public void run(){ for(int i=0; i4; i++){ try{
您可能关注的文档
- 02、如何开口谈保险(四稿图片稿)(PPTminimizer).ppt
- H型高血压的规范治疗.ppt
- IBMTXSeriesCICS管理.ppt
- 02嵌入式Linux系统开发工具.ppt
- ICU专科护士应具备的素质.ppt
- 02投影作图基本技能.ppt
- IE技术与现场改善活动资料.ppt
- 02机电一体化技术(讲稿).ppt
- iHaps数据处理流程概览.ppt
- 02第2章城市与城市化.ppt
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
最近下载
- 燃气管道及附属设施作业活动风险管控清单.pdf VIP
- 2025至2030年贵州省煤炭工业投资分析及前景预测报告.docx
- 党政领导干部拟任县处级资格考试试题及答案.docx VIP
- 2023广东清远市清城区总工会招聘3人考试备考题库及答案解析.docx VIP
- 个人信息保护影响评估报告(模板).docx VIP
- 2025党政领导干部拟任县处级资格考试试题及答案.pdf VIP
- 2025中核集团2026届提前批校园招聘笔试备考题库及答案解析.docx VIP
- 2024广东清远市清城区总工会招聘2人笔试备考试题及答案解析.docx VIP
- (2024秋新版)人教版七年级数学上册全册PPT课件.pptx
- 关于绑架的小故事-绑架关起来的故事.docx VIP
文档评论(0)