- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一讲引言——软件开发过程.ppt
Java语言概述 12.1 Java中的线程 12.2 Thread的子类创建线程 12.3 使用Runable接口 12.4 线程的常用方法 12.5 GUI线程 12.6 线程同步 12.7 在同步方法中使用wait()、notify 和notifyAll()方法 12.8 挂起、恢复和终止线程 12.9 计时器线程Timer 12.1 Java中的线程 程序、进程与线程 程序是静态的概念,它是软件执行的蓝本。 进程是程序的一次执行过程,对应代码加载、执行至执行完毕的完整过程。 线程是比进程更小的执行单位,一个进程执行中,可以产生多个线程,每个线程有它自身的产生、存在和消亡的过程,也是一个动态的概念 Java的多线程就是在操作系统每次分时给Java程序一个时间片的CPU时间内,在若干个独立的可控制的线程之间切换。 每个Java程序都有一个缺省的主线程。当JVM加载代码,发现main方法之后,就会启动一个线程,这个线程称作“主线程”,该线程负责执行main方法。那么,在main方法的执行中再创建的线程,就称为程序中的其它线程。如果main方法中没有创建其他的线程,那么当main方法执行完最后一个语句,即main方法返回时,JVM就会结束我们的Java应用程序。如果main方法中又创建了其他线程,那么JVM就要在主线程和其他线程之间轮流切换,保证每个线程都有机会使用CPU资源,main方法即使执行完最后的语句,JVM也不会结束我们的程序,JVM一直要等到程序中的所有线程都结束之后,才结束我们的Java应用程序 2.线程的状态与生命周期 新建 当一个Thread类或其子类的对象被声明并创建时,线程对象处于新建状态。分配了相应的内存空间和其他资源。 就绪态 除了CPU资源以外,其他的资源都满足,只要获得CPU资源就可以运行。进入就绪态。 运行态 对就绪态的线程一获得了CPU资源时,进入运行态 阻塞状态 有4种原因进入阻塞:1、sleep(int millsecond)休眠;2、wait()等待方法;3、I/O阻塞 死亡 run方法结束。推荐使用自然结束,不建议使用stop()强制退出。 线程例子 例9.1 定义 创建 启动 3 线程的优先级 每个线程都有一个优先级,当线程在创建时,其优先级是由创建它的线程的优先级所决定的。也可以在线程创建之后通过调用setPriority方法来修改优先级。线程的优先级是在MIN_PRIORITY(线程类中定义的一个常数,值为1) 和 MAX_PRIORITY(值为10)范围内的一个整数值。数值越大,优先级越高。 操作系统的线程调度策略:时间片方式,可抢占式。 注意:在任何时刻,总是最高优先级的线程处于运行状态。但是这一点是不能保证的,例如当高优先级的线程处于阻塞状态,并且CPU处于空闲时,低优先级的线程也会被调度执行。 利己线程的概念。 12.2 Thread的子类创建线程 用Thread类或子类创建线程对象 . 编写Thread类的子类时,需要重写父类的run方法,其目的是规定线程的具体操作,否则线程就什么也不做,因为父类的run方法中没有任何操作语句。 当JVM将CPU使用权切换给线程时,如果线程是Thread的子类创建的,该类中的run方法就立刻执行。 12.3使用Runable接口 创建线程的另一方法用Thread类创建线程对象。构造方法是: Thread(Runnable target) 其中参数是一个Runnable类型的接口,因此,必须向构造方法的参数传递一个实现Runnable接口类的实例,该实例对象称作所创线程的目标对象. 当线程调用start方法后,一旦轮到它来享用CPU资源,目标对象就会自动调用接口中的run方法(接口回调) 线程间可以共享存储单元,并使用存储单元实现数据交换,因此,使用Runnable具有更强的灵活性。 9.4线程的常用方法 start() 启动线程,使之从新建状态进入就绪队列排队,一旦满足CPU资源时,就可以运行。 run() 定义线程对象的执行体,都是系统自动调用而用户程序不能引用的方法。 sleep(int millsecond) 线程执行sleep方法来使自己休眠一段时间。休眠时间由参数millsecond决定,单位为毫秒。 isAlive() 判断线程是否处于运行状态,返回boolean类型。 注意:一个线程开始运行而未死亡时,不要再给线程分配实体,由于线程只能引用最后分配的实体,先前的实体就会成为“垃圾”,并且不能被垃圾收集机收集。 currentThread() 是Thread类中的类方法,可以用类名调用,返回当前正在运行的线程。 interrupt() 用来“唤醒”
您可能关注的文档
最近下载
- 派出所校园防欺凌方案.docx VIP
- 汽车钢板弹簧后悬设计答辩--公开课件设计.ppt VIP
- 义务教育版(2024)七年级全一册信息科技 第9课 数据传输有新意 教案.docx VIP
- 7氯丁橡胶总结.ppt VIP
- 华为HCIA-GaussDB GaussDB应用开发 H13-911考试题库-下(判断、填空题).docx VIP
- DB37T5072-2016山东建筑工程建筑结构施工技术资料-全套资料表格word.docx VIP
- DB37T5072-2016山东建筑工程建筑结构施工技术资料-全套资料表格word.docx VIP
- DB37T5072_2016山东建筑工程建筑结构施工技术资料_[全套]资料表格word.docx VIP
- 一年级拼音书写四线三格.docx VIP
- 军民航防相撞课件.pptx VIP
文档评论(0)