java线程中sleep()和yield()以及join()的区别?
2021/9/14 17:06:24
本文主要是介绍java线程中sleep()和yield()以及join()的区别?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
sleep()与yield()需要区分比较?
相同点:
sleep()方法和yield()方法都是Thread类中的静态方法,都会使当前线程放弃cpu的使用,把cpu的运行机会让给别的线程。
不同点:
1.sleep()方法把cpu让给其它线程,不会考虑其它线程的优先级,因此会给低级别的线程运行cpu的机会;yield()方法只会给与当前线程同一优先级别或者更高优先级的线程运行cpu的机会。
2.当线程执行sleep(mils)后,当前线程会进入阻塞状态,参数mils指定休眠时间,休眠时间到后线程进入就绪状态;yield()执行后,当前线程是进入就绪状态。
3.sleep()方法申明抛出InterruptedException异常;yield()方法没有申明抛出任何异常。
4.sleep()方法比yield()方法具有更好的可移植性。不能依靠yield()方法来提高程序的并 发行能。对于大多数程序员来说,yield()方法的唯一用途是在测试期间人为地提高程 序的并发性能,以帮助发现一些隐藏的错误。
join()方法?
运行中的线程A,可以调用线程B的join()方法,一旦调用A线程将进入阻塞状态,直到B线程执行结束,A才能恢复到就绪状态。join()有两个重载形式,join()和join(TimeOut),即可以设置A线程醒来的时间。
这篇关于java线程中sleep()和yield()以及join()的区别?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23JAVA语音识别项目入门教程
- 2024-11-23Java云原生学习:从入门到实践
- 2024-11-22Java创业学习:初学者的全面指南
- 2024-11-22JAVA创业学习:零基础入门到实战应用教程
- 2024-11-22Java创业学习:从零开始的Java编程入门教程
- 2024-11-22Java对接阿里云智能语音服务学习教程
- 2024-11-22JAVA对接阿里云智能语音服务学习教程
- 2024-11-22Java对接阿里云智能语音服务学习教程
- 2024-11-22Java副业学习:零基础入门到实战项目
- 2024-11-22Java副业学习:零基础入门指南