如何理解线程中的yield()方法
2020-07-14 06:31
176 查看
1.方法的作用?
让出当前线程的cpu执行权,使得线程由运行状态变为就绪状态。
2.使用场景
yield 方法可以很好的控制多线程,如执行某项复杂的任务时,如果担心占用资源过多,可以在完成某个重要的工作后使用 yield 方法让掉当前 CPU 的调度权,等下次获取到再继续执行,这样不但能完成自己的重要工作,也能给其他线程一些运行的机会,避免一个线程长时间占有 CPU 资源。
3.使用中的注意事项?
3.1 yield()让出cpu执行权的时间是不可设定的,跟线程执行的优先级是没有关系的;并不是说高优先级的在调用yield方法后,低优先级仍然需要等待高的执行完才可执行,只要cpu分配给线程执行的时间片后,就有机会执行;
3.2 同时也不会释放锁资源,因为我们完全可以在线程释放锁之后再调用yield方法,所以这里是不会对锁进行相应的操作;
3.3 在调用yield方法后,线程会进入就绪队列中,cpu会开始执行时间片轮换机制,所以当前线程是仍然有机会获得时间片去继续执行任务。
相关文章推荐
- 黑马程序员:如何结束线程及线程中的其他方法介绍:interrupt()、join()、yield()等方法
- java线程当中 sleep() join() yield()方法的简单比较以及如何保护共享数据介绍
- 线程理解之yield方法
- 个人总结如何学习新知识与对知识技术进行深入理解的方法
- Thread线程的深刻理解和代理方法参数[有图有真相]
- 线程中的一些常用方法的用法 join()、yield()、sleep()、wait()、notify()、notifyAll()
- 线程的Yield方法
- 如何在Java中编写一个线程安全的方法?
- 实现隋朝农民起义的过程:线程的yield与方法random判别的区别
- 线程的sleep()方法和yield()方法有什么区别?
- 线程中yield()方法的一个奇怪的问题
- 如何理解css3 -webkit-animation-fill-mode属性值为both时的使用方法
- java-线程的sleep(),wait(),notify(),yield()方法的区别
- 线程的sleep,join,yield方法
- 关于线程方法的一些个人理解
- 详解Java中的线程让步yield()与线程休眠sleep()方法
- 线程的礼让(Thread.yield())方法
- HashCode如何理解?关于hashcode方法和HashSet类
- 理解线程方法的基本概念 和 执行过程
- 我对Objective-C中一个方法如何传递多个参数的理解