Thread.wait()与Thread.yield()的区别

本文探讨了在Java多线程环境下,遇到只有一个线程运行的问题,并对比分析了yield和wait方法的区别。通过实例说明了wait方法可以释放当前线程锁且不消耗Java执行环境的时间,而yield方法虽尝试让出CPU但仍然占用资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间,在项目的开发过程中,明明配置了多线程,但是运行的时候却总是一个线程在跑,

当时就怀疑可能是因为一个线程独占了系统资源,造成了其他线程没有执行的机会,因此,

就研究一下yield方法并顺便查了一下wait和yeild的方法的区别。

1.使用wait等待时间,其实是停止在等待区内停止执行,所以不会浪费Java执行环境的处理时间。而field()方法(尽可能把优先级别交给其他线程)则会在等待中的线程也在持续运行着,会占用Java虚拟机执行时间。
2.执行wait方法时,其当前线程锁住的资源会释放,而yield方法则不会释放其锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值