- 博客(18)
- 资源 (20)
- 问答 (4)
- 收藏
- 关注
原创 从头认识多线程-2.26 synchronized同步代码块在jvm是怎样执行的?
这一章节我们来讨论一下synchronized同步代码块在jvm层面的执行。1.synchronized同步代码块是依赖字节码指令来控制代码清单:package com.ray.deepintothread.ch02.topic_26;/** * * @author RayLee * */public class SynchBlock { private Object objec
2016-05-24 11:02:22 3803
原创 从头认识多线程-2.25 synchronized同步方法在jvm是怎样执行的?
这一章节我们来讨论一下synchronized同步方法在jvm层面的执行。1.synchronized同步方法是不依赖字节码指令来控制代码清单:package com.ray.deepintothread.ch02.topic_25;/** * * @author RayLee * */public class SynchMethod { public synchronized
2016-05-24 10:48:16 2443
原创 从头认识多线程-2.24 修改监视器对同步的影响
这一章节我们来讨论一下修改监视器对同步的影响。1.不修改监视器,同步的package com.ray.deepintothread.ch02.topic_24;/** * * @author RayLee * */public class SynchOfStaticInnerClass { public static void main(String[] args) { T
2016-05-20 16:27:07 5112
原创 从头认识多线程-2.23 静态内部类的同步机制跟普通类相同
这一章节主要讨论静态内部类的同步机制跟普通类相同。1.当同步方法的时候package com.ray.deepintothread.ch02.topic_23;/** * * @author RayLee * */public class SynchOfStaticInnerClass { static class InnerClass { private static in
2016-05-18 21:21:14 1819
原创 从头认识多线程-2.22 内部类的同步机制跟普通类相同
这一章节主要讨论内部类的同步机制跟普通类相同。1.当同步方法的时候package com.ray.deepintothread.ch02.topic_22;/** * * @author RayLee * */public class SynchOfInnerClass { class InnerClass { private int id = 0; public sy
2016-05-17 22:11:35 2494
原创 从头认识多线程-2.21 死锁简介
这一章节我们来展示一下死锁。1.代码清单package com.ray.deepintothread.ch02.topic_21;/** * * @author RayLee * */public class DeadLock { public static void main(String[] args) throws InterruptedException { MySe
2016-05-16 22:05:19 4742
原创 从头认识多线程-2.20 synchronized同步方法的无限等待与解决方法
这一章节我们讨论一下synchronized同步方法的无限等待与解决方法。1.synchronized同步方法的无限等待package com.ray.deepintothread.ch02.topic_20;/** * * @author RayLee * */public class InfiniteWait { public static void main(String[
2016-05-15 20:41:44 5336
原创 从头认识多线程-2.19 synchronized (new object())同步时各种不同类别的监视器以及其引起的问题(常量池的影响)
在这里先向读者们道歉,由于之前的不严谨,从头认识多线程-2.15 证明使用整数属性域作为多线程监视器是不同步的这一章里面的例子有所偏差,导致结论出现偏差,在这里再次道歉,因此,才有今天的这一个章节出现。这一章节我们来讨论一下各种不同类别的监视器以及所引起的问题。1.使用整数作为属性域,而且该属性域就是多线程同步的监视器package com.ray.deepintothread.ch02.topi
2016-05-12 21:25:38 4107
原创 从头认识多线程-2.18 同步方法与同步静态代码块持有的是不同的锁
这一章节我们来讨论一下同步方法与同步静态代码块持有的是不同的锁。代码清单:package com.ray.deepintothread.ch02.topic_18;/** * * @author RayLee * */public class SynchClass { public static void main(String[] args) throws Interrupte
2016-05-11 18:08:09 4200
原创 从头认识多线程-2.17 同步静态方法和静态代码块
这一章节我们来讨论一些同步静态方法和静态代码块。代码清单package com.ray.deepintothread.ch02.topic_17;/** * * @author RayLee * */public class SynchClass { public static void main(String[] args) throws InterruptedExceptio
2016-05-11 15:20:24 4132
原创 从头认识多线程-2.16 证明使用整数属性域作为多线程监视器是不同步的
这一章节接着上一章节最后的错误的思路,我们来证明使用属性域作为多线程监视器是不同步的。1.用同一个属性域作为多线程监视器,是不同步的package com.ray.deepintothread.ch02.topic_16;/** * * @author RayLee * */public class DirtyReadWithSynchBlock { public static
2016-05-08 22:01:54 3205
原创 从头认识多线程-2.15 解决由同步的synchronized (newobject()) 引起的脏读的方法
这一章节我们来讨论一下解决由同步的synchronized (newobject()) 引起的异步现象和脏读的方法。1.代码清单package com.ray.deepintothread.ch02.topic_14;/** * * @author RayLee * */public class DirtyRead { public static void main(String
2016-05-08 14:22:55 3878
原创 从头认识多线程-2.14 由同步的synchronized (newobject()) 引起的异步现象和脏读
这一章节我们来讨论一下由同步的synchronized (newobject()) 引起的异步现象。1.代码清单package com.ray.deepintothread.ch02.topic_14;/** * * @author RayLee * */public class AsynchOfSynchWithUnSameObject { public static void
2016-05-07 22:00:14 5525
原创 从头认识多线程-2.13 synchronized ()代码块不单可以用this,也可以用其他对象
这一章节我们来讨论一下synchronized ()代码块的另一个用法,它不单可以用this,也可以用其他对象。1.代码清单package com.ray.deepintothread.ch02.topic_13;/** * * @author RayLee * */public class ObjectLock { public static void main(String[
2016-05-06 16:54:19 4088
原创 从头认识多线程-2.12 synchronized标记的方法和synchronized(this)标记的代码块锁定的是当前对象
这一章节我们来讨论一下synchronized标记的方法和synchronized(this)标记的代码块锁定的是当前对象。1.其实从语句上面我们就已经可以看出synchronized(this)锁定的是当前对象,因为能够使用this的只有指代当前对象(当然,在构造器里面有些this除外)2.代码清单:package com.ray.deepintothread.ch02.topic_12;/
2016-05-05 21:36:47 2545 1
原创 从头认识多线程-2.11 通过同步代码块证明synchronized标记的是对象锁
这一章节我们来讨论一下通过同步代码块证明synchronized标记的是对象锁。1.代码清单:package com.ray.deepintothread.ch02.topic_11;/** * * @author RayLee * */public class ObjectLock { public static void main(String[] args) throws
2016-05-03 23:06:28 4654
原创 从头认识多线程-2.10 同步代码块的特殊现象:一半同步,一半异步
这一章节我们来讨论一下同步代码块的一个特殊现象:一半同步,一半异步代码清单:
2016-05-03 09:05:52 4334
原创 从头认识多线程-2.9 缓解同步方法的隐患-同步代码块
这一章节我们来讨论一下缓解同步方法的隐患-同步代码块。1.思路:把同步方法,降低同步的粒度,同步到代码块2.根据上一章节的例子,我们把代码修改一下(1)第一种方法,把同步标记移到更新的那一栏里面去,一般来说大部分都是更新的时候需要同步数据package com.ray.deepintothread.ch02.topic_9;/** * 从头认识多线程-2.8 缓解同步方法的隐患-同步代码块
2016-05-02 17:10:13 5362
Mastering Python Design Patterns 精通python设计模式
2015-09-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人