- 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多线程的两种实现方法和区别; 了解线程的状态变化; 了解多线程的主要操作方法。 项目任务 本项目完成一个倒计时窗口,自定义刷新时间,能精确地显示天数、小时数、分钟数和秒数。 任务一 理解线程 public class ThreadTest { public static void main(String args[]){ Thread t=Thread.currentThread(); t.setName(单线程);//当前线程命名为“单线程” t.setPriority(8);//设置优先级为8,最高为10,最低位1,默认为5 System.out.println(The running thread: +t); try{ for(int i=0;i3;i++){ System.out.println(Sleep time: +i); Thread.sleep(100); } }catch(InterruptedException e){ System.out.println(Thread has wrong!!!); } } } 相关知识 1.多线程的概念 多线程是实现并发机制的一种有效手段。进程与线程一样,都是实现并发的一个基本单位。线程是比进程更小的执行单位,线程是在进程的基础之上进行的进一步划分。所谓多线程是指一个进程在执行过程中可以产生多个线程,这些线程可以同时存在、同时运行,一个进程可以包含了多个同时执行的线程。 在多线程程序中,多个线程可共享一块内存区域和资源。例如,当一个线程改变了所属应用程序的变量时,则其他线程下次访问该变量时将看到这种改变。线程间可以利用共享特性来实现数据交换、实时通信等。 2.线程的状态和生命周期 1、线程的状态 每个Java程序都有一个默认的主线程。该线程由系统自动生成。对于应用程序而言,主线程是main()方法执行线程;对于小应用程序而言,主线程是浏览器加载并执行Java的Applet。要实现多线程,必须在主线程中创建新的线程对象。新建的线程在它的生命周期内需要经历5种状态:新建、就绪、运行、阻塞和死亡。 (1)新建 当一个线程对象被声明并创建时,新生的线程对象处于新建状态。 (2)就绪 处于新建状态的线程被启动后,即可拥有相应的内存空间和所属的资源。他将进入线程队列排队等候CPU调度。处于就绪状态的线程已经具备运行的条件,一旦轮到它占用CPU资源,就可以脱离创建它的主线程独立开始自己的生命周期。 (3)运行 处于就绪状态的线程被调度并获得CPU资源时,便处于运行状态。 (4)阻塞 一个正在运行的线程因某些原因让出CPU并暂时中止自己的执行时,就进入阻塞状态。阻塞时的线程不能进行队列排队,只有当阻塞条件消失时,线程才可以转入就绪状态,重新进入线程队列中排队等待CPU调度,以便于从原来中止位置开始继续执行。 (5)死亡 当线程不具有继续运行的能力时,将处于死亡状态。线程死亡的原因有两种:一是线程完成了自己的全部工作;二是线程被强制性的中止。 线程的生命周期 3.线程的调度和优先级 线程的优先级代表该线程的重要或紧急程度,当有多个线程同时处于可执行状态并等待获得 CPU 时间时,线程调度系统根据各个线程的优先级来决定给谁分配 CPU 时间,优先级高的线程有更大的机会获得 CPU 时间,对于优先级相同的线程,则遵循队列的“先进先出”原则,即先到的线程先获得系统资源来运行。 可以调用 Thread 类的方法 getPriority() 和 setPriority()来存取线程的优先级,线程的优先级介于1(MIN_PRIORITY)和10(MAX_PRIORITY)之间,缺省是5(NORM_PRIORITY)。 任务二 创建线程 创建两个线程 每一个都打印1到10之间的数。 public class ThreadDemo extends Thread { public ThreadDemo(String name) { super(name); } public void run() { for (int i = 1; i = 10; i++) { System.out.println( + i + + getName()); try { sleep(1000); } catch (InterruptedException e) { } }
您可能关注的文档
- HTML和中文Dreamweaver MX2004实用教程 配套课件作者 杜金 郭海 曲彭生 第4章新.ppt
- HTML和中文Dreamweaver MX2004实用教程 配套课件作者 杜金 郭海 曲彭生 第5章新.ppt
- HTML和中文Dreamweaver MX2004实用教程 配套课件作者 杜金 郭海 曲彭生 第7章新.ppt
- HTML和中文Dreamweaver MX2004实用教程 配套课件作者 杜金 郭海 曲彭生 第9章新.ppt
- Illustrator CS3中文版实例教程 1CD 汪晓斌 1新.ppt
- Illustrator CS3中文版实例教程 1CD 汪晓斌 3新.ppt
- Illustrator CS3中文版实例教程 1CD 汪晓斌 4新.ppt
- Illustrator CS3中文版实例教程 1CD 汪晓斌 5新.ppt
- Illustrator CS3中文版实例教程 1CD 汪晓斌 6新.ppt
- Illustrator CS3中文版实例教程 1CD 汪晓斌 9新.ppt
- Java 程序设计项目教程(教育部高职高专计算机教指委规划教材) 张兴科 季昌武 项目七新.ppt
- Java 程序设计项目教程(教育部高职高专计算机教指委规划教材) 张兴科 季昌武 项目十新.ppt
- Java 程序设计项目教程(教育部高职高专计算机教指委规划教材) 张兴科 季昌武 项目十一 新.ppt
- Java 程序设计项目教程(教育部高职高专计算机教指委规划教材) 张兴科 季昌武 项目四新.ppt
- Java 程序设计项目教程(教育部高职高专计算机教指委规划教材) 张兴科 季昌武 项目五新.ppt
- Java 程序设计项目教程(教育部高职高专计算机教指委规划教材) 张兴科 季昌武 项目一新.ppt
- JavaEE开发技术与案例教程 刘彦君 金飞虎 第1章 JavaEE概述新.ppt
- JavaEE开发技术与案例教程 刘彦君 金飞虎 第3章 JavaServlet新.ppt
- JavaEE开发技术与案例教程 刘彦君 金飞虎 第5章 XML新.ppt
- JavaEE开发技术与案例教程 刘彦君 金飞虎 第8章 Spring2新.ppt
原创力文档


文档评论(0)