yield()介绍
yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程又进入到“运行状态”继续运行!yield() 与 wait()的比较
我们知道,wait()的作用是让当前线程由“运行状态”进入“等待(阻塞)状态”的同时,也会释放同步锁。而yield()的作用是让步,它也会让当前线程离开“运行状态”。它们的区别是:
1.wait()是让线程由“运行状态”进入到“等待(阻塞)状态”,而不yield()是让线程由“运行状态”进入到“就绪状态”。
2.wait()是会线程释放它所持有对象的同步锁,而yield()方法不会释放锁。
相关文章
- .net 反射访问私有变量和私有方法 如何创建C# Closure ? C# 批量生成随机密码,必须包含数字和字母,并用加密算法加密 C#中的foreach和yield 数组为什么可以使用linq查询 C#中的 具名参数 和 可选参数 显示实现接口 异步CTP(Async CTP)为什么那样工作? C#多线程基础,适合新手了解 C#加快Bitmap的访问速度 C#实现对图片文件的压
- Java之hashCode的作用和equals方法的重构规则
- Java基础知识强化85:System类之arraycopy()方法(数组拷贝)
- Java 容器源码分析之HashMap多线程并发问题分析
- java进阶之反射:反射基础之如何获取一个类以及如何获取这个类的所有属性和方法(2)
- 《Java多线程面试题》系列-创建线程的三种方法及其区别
- Java多线程并发02——线程的生命周期与常用方法,你都掌握了吗
- Java多线程——多线程方法详解
- Java多线程性能调优-Lock同步锁优化方法
- Java多线程(六) —— 线程并发库之并发容器