yield方法的使用 Thread类中的静态native方法 让出剩余的时间片,本身进入就绪状态,不释放锁 cpu调度还可能调度到本线程 sleep是在一段时间内进入阻塞状态,cpu不会调度它。而yield是让出执行权,本身还处于就绪状态,cpu还可能立即调度它 yield方法的定义public ...
Java内存模型.md
三兄弟:JVM内存结构 VS Java内存模型 VS Java对象模型JVM内存结构 共享区域 堆区(所有线程共享) 存储的全部是对象实例(通过new等指令创建的,并会被垃圾回收;数组也是保存在堆上面的,即使是基本类型的数据,也是保存在堆中的。因为在Java中,数组是对象),是内存中最大的一块。 堆 ...
ThreadLocal.md
1. 两大使用场景 每个线程需要一个自己独享的对象(通常是工具类,例如SimpleDateFormat和Random) 使用时重写ThreadLocal的initValue方法 需要保存到ThreadLocal里的对象的生成由我们控制 每个线程内需要保存全局变量(例如在拦截器中获取用户信息),可 ...
volatile.md
volatile保证可见性,不保证原子性 volatile强制线程到共享内存中读取数据,而不从线程工作内存中读取,从而使变量在多个线程中可见 volatile无法保证原子性,volatile属于轻量级的同步,性能比synchronized强很多(不加锁),但是只 保证线程见的可见性,并不能替代syn ...