腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
【一分钟知识】技术知识
共 10 篇文章
加入清单架
1
【一分钟知识】多态、抽象类与接口
2
【一分钟知识】面对对象、基本类型
3
【一分钟知识】HashSet和TreeSet,HashMap与HashTable
4
【一分钟知识】try catch finally执行顺序,final finally finalize的区别
5
【一分钟知识】常用集合List、Map、Set
6
【一分钟知识】异常处理,值传递和引用传递
7
【一分钟知识】进程与线程,Thread的sleep与wait
8
【一分钟知识】断言,Error和Exception区别
9
【一分钟知识】静态变量和实例变量、构造器
10
【一分钟知识】线程同步,线程调度
清单首页
【一分钟知识】技术知识
文章详情
清单「【一分钟知识】技术知识」 10/10
【一分钟知识】线程同步,线程调度
java思维导图
sleep()和yield()方法区别
1
sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;
yield()方法只会给相同优先级或更高优先级的线程以运行的机会;
2
线程执行sleep()方法后转入阻塞(blocked)状态,
而执行yield()方法后转入就绪(ready)状态;
3
sleep()方法声明抛出InterruptedException,
而yield()方法没有声明任何异常;
4
sleep()方法比yield()方法(跟操作系统CPU调度相关)具有更好的可移植性。
线程同步以及线程调度相关的方法
wait()
使一个线程处于等待(阻塞)状态,并且释放所持有的对象的锁;
sleep()
使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要处理InterruptedException异常;
notify()
唤醒一个处于等待状态的线程,当然在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且与优先级无关;
notityAll()
唤醒所有处于等待状态的线程,该方法并不是将对象的锁给所有线程,而是让它们竞争,只有获得锁的线程才能进入就绪状态;
举报
领券