还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
线程的生命周期本课程将深入探讨线程生命周期的各个阶段,并结合代码示例进行详细讲解课程大纲什么是线程线程的生命周期线程的概念和基本原理线程状态转换,包括新建、就绪、运行、阻塞和死亡状态线程的创建与终止线程同步与安全使用类、接口以及相关方法进行线程创建和解决多线程环境下的数据竞争和死锁问题Thread Runnable终止什么是线程线程是操作系统能够进行运算调度的最小单位,它被称为轻量级进程一个进程可以包含多个线程,它们共享相同的内存空间和资源每个线程都有自己独立的执行路径和堆栈,可以并发执行不同的任务线程的特点轻量级并发执行线程是进程的一部分,共享进程资多个线程可以同时运行,提高程序源,创建和销毁比进程更轻便,效效率,实现并发编程率更高独立执行每个线程都有自己的执行路径和状态,互不影响线程状态转换新建状态1线程刚创建尚未启动就绪状态2线程已准备好运行运行状态3线程正在执行任务阻塞状态4线程被暂停等待资源死亡状态5线程已终止新建状态线程创建未启动线程被创建时处于新建状态,但尚未启动运行线程尚未开始执行任何任务,仅分配了内存空间就绪状态等待执行可运行状态条件满足线程已准备好运行,但尚未分配线程处于就绪队列中,等待操作当线程获得资源,即可从就CPU资源系统调度绪状态进入运行状态CPU运行状态活动线程时间片CPU线程处于运行状态,正在执行其任务代码线程获得时间片,在上运行,执行任务CPU CPU阻塞状态等待资源等待事件线程需要获取某个资源才能继续执行,例如锁、文件或网络线程等待某个事件发生,例如等待用户输入或另一个线程完连接成任务死亡状态线程结束资源释放线程执行完方法或遇到不可恢复的错误,就会进入死线程死亡后,系统会释放该线程所占用的资源run亡状态无法再恢复运行线程的创建类Thread直接使用类创建线程,并重写方法Thread run接口Runnable实现接口并重写方法,再创建对Runnable runThread象,传入实现类实例方法start调用方法启动线程,执行方法start run类Thread类概述线程的创建Thread12中的类是线程可以通过类的构造Java ThreadThread的基类,它提供了许多方法方法创建一个新的线程对象来管理线程的生命周期和行为线程的启动线程的执行34使用方法启动线程,线程的执行过程由方start run该方法会调用线程的法控制,其中包含线程的实run方法际代码实现接口Runnable创建线程类创建对象Thread创建一个类,实现创建对象,将实现Runnable Thread接口,并实现方法,该方接口的类实例作为run Runnable法包含线程要执行的代码参数传入构造函数Thread启动线程调用对象的方法启动线程,该方法会调用方法Thread startrun方法start启动线程1开始执行线程的方法run创建新的线程2如果线程尚未运行,则创建新的线程加入线程池3将新线程加入到线程池中方法run执行代码1方法是线程真正执行的代码块当线程启动后,run方法会开始执行run方法体2开发者可以在方法中定义线程需要执行的任务,例run如处理数据、访问资源等线程结束3当方法执行完毕后,线程就会结束run线程的终止interrupt1发送中断信号InterruptedException2抛出异常结束run3自然结束方法interrupt方法用于中断线程,但线程需要在运行中检查中断标志,interrupt不直接停止线程运行并做出相应的处理抛出InterruptedException异常中断线程异常处理当线程处于阻塞状态时,可以线程会抛出通过调用方法来中异常,interrupt InterruptedException断线程以便捕获并处理中断事件线程休眠方法sleep1暂停当前线程的执行,让出CPU时间参数2指定休眠时间,单位为毫秒恢复执行3休眠时间结束后,自动恢复执行方法sleep线程休眠语法使用方法可以让线程进入休眠状态,暂停执行一段时毫秒数sleep Thread.sleep;间和suspend resumesuspendresume暂停线程的执行,但不会释放锁恢复线程的执行,但可能导致死锁线程优先级优先级等级设置优先级12线程优先级表示线程的执行可以使用方`setPriority`顺序法设置线程优先级优先级影响3高优先级的线程更有可能先执行,但不能保证方法setPriority设置线程优先级,数字越大优先级越高可以通过类的方法线程优先级仅表示相对执行顺序,不保Thread setPriority来设置线程的优先级证高优先级线程一定先执行线程同步数据一致性竞争条件多个线程访问共享资源时,多个线程同时访问和修改共需要确保数据的完整性和一享资源,可能会导致数据不致性一致同步机制使用锁、信号量等机制,确保同一时间只有一个线程访问共享资源关键字synchronized互斥锁原子性可见性关键字用于实现线程同关键字可以保证代码块关键字可以保证线程之synchronized synchronizedsynchronized步,它会创建一个互斥锁,保证同一的原子性,即代码块中的操作要么全间的可见性,即一个线程对共享变量时间只有一个线程可以访问被保护的部执行,要么全部不执行的修改对其他线程可见代码块线程池重复利用线程提高效率管理线程框架Executor线程池管理任务调度灵活控制管理线程池,避免频繁创建和销毁提供多种任务调度机制,例如定时可以灵活控制线程数量、任务执行线程,提高效率任务、周期性任务等顺序、异常处理等线程安全资源竞争同步机制线程安全数据结构多个线程同时访问共享资源时可能出现使用同步机制,如锁,确保一次只有一使用线程安全的数据结构,例如竞争,导致数据不一致个线程访问共享资源,避免资源竞`ConcurrentHashMap`争死锁互相等待资源竞争多个线程相互等待对方释放资多个线程争抢有限的资源,导源,导致所有线程都无法继续致某些线程无法获得所需资源执行不合理顺序线程获取资源的顺序不当,可能导致死锁总结与思考线程的生命周期线程的创建与终止12了解线程的生命周期有助于熟悉线程的创建方法和终止我们更好地理解线程的运行方式,是编写多线程程序的机制和状态转换,进而优化关键步骤程序性能线程同步3线程同步机制能够有效防止数据竞争和死锁,保证程序的稳定性和可靠性。
个人认证
优秀文档
获得点赞 0