- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 多线程 1 线程基本概念 程序是代码的集合,例如Java的应用程序和小应用程序。 进程是程序的一次执行,进程使用了计算机中的CPU、内存等资源,经过了一个创建、运行、消亡的过程,是动态的。 线程是进程的组成单位,线程是程序中完成一个任务的有始有终的执行流,一个进程可以由若干个线程组成。例如,Java应用程序由一个主线程运行,主线程还可以创建其它线程。 1 线程基本概念 线程在生命周期中有五种状态:新建(New)、就绪(Ready)、运行(Running)、阻塞(Blocked)、终止(Terminated)。Java程序可以控制线程在这些状态之间转换 调用线程类的构造方法创建线程后,新建的线程处于新建状态 线程调用start( )方法后处于就绪状态。此时如果CPU在运行其它线程,线程必须排队等待,如果CPU空闲,线程立即占用CPU开始运行 线程获得CPU后处于运行状态 运行中的线程如果遇到读写数据、调用sleep()方法或其它阻塞事件,状态转变为阻塞状态 处于阻塞状态的线程,如果引起阻塞的事件结束,例如数据读写完毕或sleep()设定的时间已到,线程再次处于就绪状态 线程遇到异常或线程代码运行完毕,不能继续运行时,处于终止状态 2 Runnable接口和Thread类 定义线程类要用到Runnable接口和Thread类,它们都在java.lang包中 Runnable接口中只有一个方法: public void run() 一个类实现Runnable接口,必须覆盖run()方法,并在这个方法中编写线程程序。线程运行后自动执行run( )中的代码,run( )方法不需要在程序中调用 2 Runnable接口和Thread类 Thread类实现了Runnable接口,但仅仅以空的方法体覆盖了run()方法 ,常用的构造方法和成员方法有: Thread( ) Thread(String name) // name是线程的名字 Thread(Runnable target) // target引用实现了Runnable接口的类的对象 Thread(Runnable target, String name ) public void start() //使线程变为就绪状态,占用CPU后运行run( )方法 void setName(String name) //设置线程名 String getName( ) //获取线程名 void setPriority(int newPriority) //设置线程优先级 int getPriority( ) //获取线程优先级 static void sleep(long milliseconds) throws InterruptedException //线程睡眠milliseconds毫秒 static Thread currentThread( ) //返回正在运行的线程对象 3 继承Thread类创建线程 通过继承Thread创建线程对象的步骤是: ·定义线程类继承Thread,并覆盖run()方法。 ·在run()方法中编写线程执行的代码。 ·使用new调用线程类的构造方法创建线程对象,并调用start()方法。 调用start()方法后线程对象处于就绪状态,如果获得CPU资源,线程自动运行run()方法。有多个线程对象同时处于就绪状态时,这些线程交替使用CPU 3 继承Thread类创建线程 例12-1 定义一个线程类,循环执行1000次输出语句,每次迭代输出线程名和循环迭代次数。创建两个线程对象,观察这两个对象的交替运行 4 实现Runnable接口创建线程 实现Runnable接口创建线程对象的步骤是: ·定义类实现Runnable接口,并覆盖run()方法。 ·在run()方法中编写线程执行的代码。 ·创建上述类的对象,并以该对象为参数,调用Thread的构造方法创建Thread对象。 ·Thread对象调用start()方法 4 实现Runnable接口创建线程 例12-2 创建两个线程对象,一个线程循环输出0~9之间的随机数,每行输出10个。另一个线程
您可能关注的文档
- ISO 9000族质量管理标准理论与实务 孙跃兰 第二章 八项质量管理原则的理解和应用新.ppt
- ISO 9000族质量管理标准理论与实务 孙跃兰 第三章 ISO9000_2005标准的术语和运用新.ppt
- ISO 9000族质量管理标准理论与实务 孙跃兰 第十一章 企业内部审核实例新.ppt
- ISO 9000族质量管理标准理论与实务 孙跃兰 第十章 审核中常见的不合格项新.ppt
- ISO 9000族质量管理标准理论与实务 孙跃兰 第五章 ISO9001_2008标准的理解与运用(二)(GB/T 19001—2008,IDT)新.ppt
- ISO 9000族质量管理标准理论与实务 孙跃兰 第一章 ISO9000族标准概述新.ppt
- Java Web设计实用教程——基于Eclipse环境的应用开发 孔昊 chap2 Eclipse的集成开发环境新.ppt
- Java Web设计实用教程——基于Eclipse环境的应用开发 孔昊 chap3 Eclipse中搭建Web开发环境新.ppt
- Java Web设计实用教程——基于Eclipse环境的应用开发 孔昊 chap4 Eclipse中开发Web项目新.ppt
- Java Web设计实用教程——基于Eclipse环境的应用开发 孔昊 chap6 Struts实现MVC设计新.ppt
- Java程序设计案例教程 钱银中 第14章 数据库程序新.ppt
- Java程序设计及应用开发教程 虞益诚 主编 第5章继承与多态新.ppt
- Java程序设计实用教程 董洋溢 第九章 网络编程新.ppt
- Java程序设计实用教程 董洋溢 第六章 图形用户界面程序设计新.ppt
- Java程序设计实用教程 董洋溢 第四章 异常处理新.ppt
- Java程序设计实用教程 董洋溢 第五章 Java常用API新.ppt
- Java程序设计实用教程 董洋溢 第一章 Java语言概述新.ppt
- Java程序设计项目教程 张群哲 课件 第2章JAVA语言基础新.ppt
- Java程序设计项目教程 张群哲 课件 第3章面向对象程序设计新.ppt
- Java程序设计项目教程 张群哲 课件 第4章图形用户界面(GUI)设计新.ppt
文档评论(0)