多线程sleep yeild wait区分

sleep()和wait()

相同点:

让当前线程让出CPU资源,并处于阻塞状态。

不同点:

1、sleep()是Thread类的方法,wait()是Object类的方法;

2、sleep()需要指定参数,wait()不需要参数;

3、sleep()到时间后自动处于可运行状态,wait()方法需要另一个线程通过notify()或者notifyAll()方法将其唤醒;

4、sleep()方法的调用线程不需要拥有锁资源,wait()方法的线程在有锁资源的情况下调用。

sleep()和yield()

相同点:

1、让当前线程让出CPU资源;

2、都是Thread类的静态方法;

不同点:

1、sleep()需要指定参数。yield()方法不需要参数;

2、sleep()在指定时间内线程处于阻塞状态等时间结束后才处于可运行状态,yield()让出资源的线程直接处于可运行状态;

3、sleep()处于可运行状态时不涉及线程优先级,和其他线程公平竞争资源,而yield()是为了让同级别或者更高优先级的线程先获取资源。

wait()和yield()

相同点:

1、都让当前线程让出CPU资源;

2、可以不指定参数;

不同点:

1、yield()是Thread类的方法,wait()是Object类的方法;

2、yield()让出资源后自动处于可运行状态,wait()方法需要另一个线程通过notify()或者notifyAll()方法将其唤醒

3、yield()方法的调用线程不需要拥有锁资源,wait()方法的线程在有锁资源的情况下调用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值