Thread类中几个容易混淆的方法

本文详细解释了sleep(), wait(), join()三个线程控制方法的区别,以及interrupted()与isInterrupted()方法在判断线程是否中断方面的不同。通过对比这些方法的作用及应用场景,帮助读者更好地理解和掌握线程控制的基本原理。

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

摘自:[url]http://manming.iteye.com/blog/343310[/url]

六.sleep(),wait(),join()区别

在当前实例中调用sleep()方法,会使当前线程进入睡眠状态,一般调用slee()方法时都会传入一个毫秒数作为当前线程睡眠的时间,线程睡眠相应的毫秒后便会重新苏醒,当前线程处于睡眠状态时是不会释放当前对象锁的,其他线程无法获得当前对象的锁,只能等待,这是便会出现线程堵塞的现象.

wait()方法与sleep()方法的作用其实是一样的,但它们也有不同的地方;wait()方法使当前线程进入等待状态,进入等待状态的线程会释放当前获得的对象锁,以供后续的线程使用.

join()方法是等待指定的线程运行结束.当调用join()时,当前线程会等待它所连接的线程不再处于活动状态(既线程运行结束).



七.interrupted()与isInterrupted()区别

这两个方法都是用来判断线程是否被中断,它们的区别就在于:

interrupted()方法是一个静态方法,它是用来判断当前线程是否中断,然后返回一个布尔值;

isInterrupted()方法必须在一个对象上执行,判断所指定的对象是否已经被中断.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值