- 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语言程序设计》第8章_多线程
第8章 多线程 本章主要内容 线程的基本概念(识记) Thread类和Runnable接口(综合应用) 线程互斥和同步(识记、简单应用) 1. 线程的基本概念(课本159-160页) 程序:是一段代码,是计算机执行的蓝本。 进程:是程序的一次执行过程。 线程:是一个控制流,也是一个执行过程,是比进程小的执行单位。一个进程在其执行过程中可以产生多个线程,形成多条执行线索。 程序、进程和线程间的关系,可以类比乐谱、一次演奏和一次演奏中每个乐师的演奏之间的关系。 进程和线程的区别:每个进程有自己的专用数据段(独立内存资源),而线程则没有,同一进程下的线程共享进程的数据段。 线程的建立和切换速度大大超过进程,执行效率比进程高,但由于多个线程共享数据段,带来数据访问过程中互斥与同步的问题,使其管理变得复杂。 在Java程序中,多任务是通过多线程实现的。 多任务是一种在单个程序里同时执行多项任务的技术。在Java中,通过给每个任务一个独立的执行线程,从而形成了多线程的并行程序。 一个CPU一次只能执行一条机器指令,通过在线程之间快速的切换,就可以并行的运行多个线程。 通过调度技术将CPU时间在各个线程之间分享,就可以实现多线程的程序。在不同的操作系统中,处理线程调度有不同的解决方案。 常用的一种调度技术为时间分片,在某种调度算法的控制下,每个线程得到一小片CPU时间。 轮循调度:每个线程分到一个相等的时间片,并且遵循先来先服务的原则。 优先级调度:更高优先级的线程可以在低优先级线程运行之前先运行。 (1)线程的生命周期(课本159-160页) 线程的生命周期 新建- 就绪- 运行- 阻塞- 死亡 Thread类 Start() Run() Sleep wait Resume notify notifyAll (2)线程调度与优先级(课本160页) Java提供一个线程调度器来监视和控制就绪状态的线程。 线程的调度策略采用抢占式,优先级高的线程比优先级低的线程优先执行,开始运行的高优先级线程将会抢占所有低优先级的线程。在优先级相同的情况下,则遵循“先到先服务”的原则。 setPriority(int)方法可用于将一个线程的优先级设置成一个整数值,该值在Thread.MIN_PRIORITY和Thread.MAX_PRIORITY之间(1-10)。 子线程自动继承父线程的优先级,也可以在程序中重新设置。 每个Java程序都有一个默认的主线程,就是通过JVM启动的第一个线程。 对于应用程序,主线程执行main()方法。 对于Applet,主线程是指浏览器加载并执行小应用程序的那一个线程。 守护线程(Daemon)是一种监视其他线程工作的服务线程,具有最低的优先级。 2. Thread类和Runnable接口 (课本161-165页) 在程序中创建线程的方法通常有两种: 创建Thread的一个子类,并重写run()方法,创建此子类的对象作为线程对象。 定义实现Runable接口的类(即在类中实现run()方法),创建此类的对象并将其作为实参传给Thread类的构造方法Thread(Runnable target),从而创建线程对象。 举例:创建几个线程,为每个线程指定唯一的ID值,每当某个线程运行时,重复输出其ID值。 public class NumberThread extends Thread { int num; public NumberThread(int n) { num = n; } public void run() { for (int k=0; k 10; k++) { System.out.print(num); } //for } // run() } // NumberThread public class Numbers { public static void main(String args[]) { NumberThread number1, number2, number3, number4, number5; number1 = new NumberThread(1); number1.start(); number2 = new NumberThread(2); number2.start(); number3 = new NumberThread(3); number3.start(); number4
您可能关注的文档
最近下载
- 电商孵化园运营方案.pdf VIP
- 初中物理竞赛试题精选精编第07讲物态变化(含答案与解析).docx VIP
- ISO22000-2018 食品安全管理体系 食品链中各类组织的要求(可编辑可复制).docx VIP
- 初中物理竞赛试题精选精编第10讲质量与密度(含答案与解析).docx VIP
- 乡村振兴战略下红色旅游发展路径研究——以沂蒙革命老区为例.pdf VIP
- 四川建筑职业技术学院高等数学(一)复习答案学生版.doc VIP
- 《陈士铎医学全书》.doc VIP
- led灯具的结构基础知识.pdf VIP
- Yamaha雅马哈 CS-R5 英文说明书.pdf VIP
- 中信建投-金融-证券行业深度报告:券商-金融科技标的的弹性测算及对比.pdf VIP
文档评论(0)