- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 线程 郑 莉 目录 多线程编程基础 线程的生命周期 线程的优先级 本章小结 8.1 多线程编程基础 本节内容 线程的概念 Thread类 Runnable接口 线程间的数据共享 多线程的同步控制 线程之间的通信 后台线程 8.1.1 线程的概念 进程和线程的区别 进程 一个独立程序的每一次运行称为一个进程,例如 用字处理软件编辑文稿时,同时打开mp3播放程序听音乐,这两个独立的程序在同时运行,称为两个进程 设置一个进程要占用相当一部分处理器时间和内存资源 大多数操作系统不允许进程访问其他进程的内存空间,进程间的通信很不方便,编程模型比较复杂 8.1.1 线程的概念(续) 线程 一个程序中多段代码同时并发执行,称为多线程 通过多线程,一个进程表面上看同时可以执行一个以上的任务——并发 创建线程比创建进程开销要小得多,线程之间的协作和数据交换也比较容易 Java是第一个支持内置线程操作的主流编程语言 多数程序设计语言支持多线程要借助于操作系统“原语(primitives)” 8.1.2 Thread类 Thread类 在Java程序中创建多线程的方法之一是继承Thread类 封装了Java程序中一个线程对象需要拥有的属性和方法 从Thread类派生一个子类,并创建这个子类的对象,就可以产生一个新的线程。这个子类应该重写Thread类的run方法,在run方法中写入需要在新线程中执行的语句段。这个子类的对象需要调用start方法来启动,新线程将自动进入run方法。原线程将同时继续往下执行 Thread类直接继承了Object类,并实现了Runnable接口。它位于java.lang包中,因而程序开头不用import任何包就可直接使用 8.1.2 Thread类(续) ——例8_1 在新线程中完成计算某个整数的阶乘 public class Ex8_1 { public static void main( String [] args ) { System.out.println(main thread starts); FactorialThread thread=new FactorialThread(10); thread.start(); System.out.println(main thread ends ); } } class FactorialThread extends Thread { private int num; public FactorialThread( int num ) { this.num=num; } 8.1.2 Thread类(续) ——例8_1运行结果 public void run() { int i=num; int result=1; System.out.println(new thread started ); while(i0) { result=result*i; i=i-1; } System.out.println(The factorial of +num+ is +result); System.out.println(new thread ends); } } 运行结果 main thread starts main thread ends new thread started The factorial of 10 is 3628800 new thread ends 8.1.2 Thread类(续) ——例8_1修改 结果说明 main线程已经执行完后,新线程才执行完 main函数调用thread.start()方法启动新线程后并不等待其run方法返回就继续运行,thread.run函数在一边独自运行,不影响原来的main函数的运行 源程序修改 如果启动新线程后希望主线程多持续一会再结束,可在start语句后加上让当前线程(这里当然是main)休息1毫秒的语句: try { Thread.sleep(1); } catch(Exception e){}; 8.1.2 Thread类(续) ——例8_1修改后运行结果 修改后运行结果 main thread starts new thread stared The factorial of 10 is 3628800 new thread ends main th
您可能关注的文档
- ExtJs系列培训视频课程目录.ppt
- ID3算法 第一讲补充内容.ppt
- IP网络基础(level-1).ppt
- IP网络基础-OSI与TCPIP.ppt
- IT培训好就业的课程.ppt
- J2EE简介(一).ppt
- J2EE课件-第8章数据库编程.ppt
- J2SE入门1 - 1.ppt
- java3面向对象程序设计_2.ppt
- Java 2实用教程课件(第3版第3章).ppt
- 2026版创新设计高考总复习地理中图版教师用-第58课时 交通运输与区域社会经济发展.docx
- 2026版创新设计高考总复习地理中图版教师用-第71课时 南水北调对区域发展的影响.docx
- 2026版创新设计高考总复习地理中图版教师用-第81课时 环境保护与国家安全.docx
- 2026版创新设计高考总复习地理中图版教师用-第77课时 海洋空间资源与国家安全.docx
- 2026版创新设计高考总复习地理中图版教师用-第72课时 黄河流域内部协作.docx
- 教育硕士考前冲刺练习含答案详解【达标题】.docx
- 教育硕士经典例题附答案详解【考试直接用】.docx
- 教育硕士综合提升测试卷附参考答案详解(完整版).docx
- 教育硕士题库附参考答案详解【黄金题型】.docx
- 教育硕士预测复习最新附答案详解.docx
最近下载
- 《质量评估流程》课件.ppt VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
- 2024年数智工程师职业鉴定考试复习题库(含答案).docx VIP
- (完整版)建筑施工技术交底范本(大全) .pdf VIP
- 水运工程大体积混凝土温度裂缝控制技术规范_JTS-T 202-1-2022.pdf
- 设备供货、安装、调试、验收方案.docx VIP
- 《水利水电工程施工图审查技术导则》.pdf VIP
- 《木材学》——李坚 木材学笔记(完整).doc VIP
- 《公路水泥混凝土路面施工技术规范》_(JTGF30-2015).pdf VIP
- 小学生数学学习自查习惯现状调查报告.pdf VIP
文档评论(0)