Java线程唤醒与阻塞常用方法(共2页)
2页1、精选优质文档-倾情为你奉上Java线程唤醒与阻塞常用方法如果线程是因为调用了wait()、sleep()或者join()方法而导致的阻塞,可以中断线程,并且通过抛出InterruptedException来唤醒它;如果线程遇到了IO阻塞,无能为力,因为IO是操作系统实现的,Java代码并没有办法直接接触到操作系统。以下是详细的唤醒方法:1. sleep() 方法sleep(毫秒),指定以毫秒为单位的时间,使线程在该时间内进入线程阻塞状态,期间得不到cpu的时间片,等到时间过去了,线程重新进入可执行状态。(暂停线程,不会释放锁)2.suspend() 和 resume() 方法挂起和唤醒线程,suspend e()使线程进入阻塞状态,只有对应的resume e()被调用的时候,线程才会进入可执行状态。(不建议用,容易发生死锁)3. yield() 方法 会使的线程放弃当前分得的cpu时间片,但此时线程任然处于可执行状态,随时可以再次分得cpu时间片。yield()方法只能使同优先级的线程有执行的机会。调用 yield()的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程。
2、(暂停当前正在执行的线程,并执行其他线程,且让出的时间不可知)4.wait() 和 notify() 方法两个方法搭配使用,wait()使线程进入阻塞状态,调用notify()时,线程进入可执行状态。wait()内可加或不加参数,加参数时是以毫秒为单位,当到了指定时间或调用notify()方法时,进入可执行状态。(属于Object类,而不属于Thread类,wait()会先释放锁住的对象,然后再执行等待的动作。由于wait()所等待的对象必须先锁住,因此,它只能用在同步化程序段或者同步化方法内,否则,会抛出异常IllegalMonitorStateException.)5.join()方法也叫线程加入。是当前线程A调用另一个线程B的join()方法,当前线程转A入阻塞状态,直到线程B运行结束,线程A才由阻塞状态转为可执行状态。以上是Java线程唤醒和阻塞的五种常用方法,不同的方法有不同的特点,其中wait() 和 notify()是其中功能最强大、使用最灵活的方法,但这也导致了它们效率较低、较容易出错的特性,因此,在实际应用中应灵活运用各种方法,以达到期望的目的与效果!专心-专注-专业
《Java线程唤醒与阻塞常用方法(共2页)》由会员公****分享,可在线阅读,更多相关《Java线程唤醒与阻塞常用方法(共2页)》请在金锄头文库上搜索。
平面构成基础教学计划
工会知识竞赛试题及答案
2021四年级数学人教版教学随笔
剪板机的设计
夏季校园防溺水初二作文
食品微生物学作业题
关于青春飞扬的演讲稿
《皮皮鲁传》读后感范文
110kV变电站电气一次设计毕业论文
2014二期重点汇总
山东省新泰市龙廷镇中心学校2015-2016学年六年级数学上册 第四章 一元一次方程单元综合测试(含解析) 鲁教版五四制
汕头关于成立环保农药公司可行性报告【参考范文】
山东二级建造师选修课优质建筑关键工程专业试题
工业废渣综合利用生产环保粉粒建筑材料专利技术推广年产80万吨示范项目
小学语文教研组工作安排计划范文(三篇).doc
《篮球双手胸前传接球》教学设计(共3页)
学校管理工作总结标准模板(4篇).doc
幼儿园班级一日生活评估表
主题班会工作总结格式版(2篇).doc
工业领域绿色低碳发展项目合作战略(参考)
2024-01-23 6页
2023-07-09 7页
2023-06-01 58页
2023-01-14 26页
2023-10-21 14页
2022-11-04 8页
2023-07-20 11页
2023-03-16 6页
2024-02-02 82页
2023-05-19 5页