java
文章平均质量分 51
打领结的猫
这个作者很懒,什么都没留下…
展开
-
多线程:synchronized和volatile
线程的生命周期:线程间通信:1.共享内存,显式2.消息传递,隐式(wait,notify)synchronized和volatile通过volatile修饰的变量进行写操作时,JVM会向处理器发送一条带Lock前缀的指令,将这个变量所在缓存的数据写回系统内存多处理器下,会实现缓存一致性协议,保证各处理器缓存一致性volatile可以保证原子性,可见性,但不能保证复合操作的原子性synchroniz...原创 2018-02-08 23:32:26 · 169 阅读 · 0 评论 -
Integer对象交换
我们先看一段代码:运行结果:从运行结果可以看出经过swap()之后a和b的值并没有改变。通过javap命令查看jvm调用了那些方法:具体可以了解下Integer的装箱和拆箱。Integer.valueOf():从上面的代码就可以看出为什么a和b的值没有改变了,因为它们是final的。那么如何对final对象进行修改呢?可以用反射,修改swap方法:运行结果:从运行结果可以看出a的值变了,那为什么b...原创 2018-02-09 15:02:52 · 832 阅读 · 0 评论 -
多线程:控制多线程按顺序执行
示例代码 static Thread t1 = new Thread(new Runnable() { public void run() { System.out.println("Thread1"); } }); static Thread t2 = new Thread(new Runnable() { public void run() { System.out....原创 2018-02-08 11:30:09 · 2588 阅读 · 0 评论