yield()介绍
yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程又进入到“运行状态”继续运行!yield() 与 wait()的比较
我们知道,wait()的作用是让当前线程由“运行状态”进入“等待(阻塞)状态”的同时,也会释放同步锁。而yield()的作用是让步,它也会让当前线程离开“运行状态”。它们的区别是:
1.wait()是让线程由“运行状态”进入到“等待(阻塞)状态”,而不yield()是让线程由“运行状态”进入到“就绪状态”。
2.wait()是会线程释放它所持有对象的同步锁,而yield()方法不会释放锁。
相关文章
- 08-16多线程 Thread.yield 方法到底有什么用?
- 08-16多线程内存问题分析之mprotect方法【转】
- 08-16Java多线程初学者指南(7):向线程传递数据的三种方法
- 08-16Java多线程初学者指南(5):join方法的使用
- 08-16Java多线程系列--“JUC集合”10之 ConcurrentLinkedQueue
- 08-16Java多线程系列--“JUC集合”07之 ArrayBlockingQueue
- 08-16Java多线程系列--“JUC集合”06之 ConcurrentSkipListSet
- 08-16Java多线程系列--“JUC集合”05之 ConcurrentSkipListMap
- 08-16Java多线程系列--“JUC集合”04之 ConcurrentHashMap
- 08-16转载:Java多线程中join方法的理解