摘要: 可重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍可以获取该锁而不受影响。在JAVA环境下 ReentrantLock 和synchronized 都是 可重入锁。public class Test implements Runnable{ public synchr... 阅读全文
posted @ 2015-11-08 23:49 素轩 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 一. volatite 简述Java 语言提供了一种稍弱的同步机制,即 volatile 变量.用来确保将变量的更新操作通知到其他线程,保证了新值能立即同步到主内存,以及每次使用前立即从主内存刷新. 当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的.二. volatit... 阅读全文
posted @ 2015-11-08 23:48 素轩 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。同步机制可以使用synchronized关键字实现。synchronized关键字修饰一个方法的时候,该方法叫做同步方法。synchronized方法执行完或发生异常时,会自动释... 阅读全文
posted @ 2015-11-08 23:47 素轩 阅读(240) 评论(0) 推荐(0) 编辑
摘要: Java 原生支持并发,基本的底层同步包括:synchronized,用来标示一个方法(普通,静态)或者一个块需要同步执行(某一时刻,只允许一个线程在执行代码块)。volatile,用来标识一个变量是共享变量(线程不缓存),更新和读取是原子的。wait,线程等待某一个Object上的事件(notif... 阅读全文
posted @ 2015-11-08 23:44 素轩 阅读(291) 评论(0) 推荐(1) 编辑
摘要: Unsafe类在jdk 源码的多个类中用到,这个类的提供了一些绕开JVM的更底层功能,基于它的实现可以提高效率。但是,它是一把双刃剑:正如它的名字所预示的那样,它是Unsafe的,它所分配的内存需要手动free(不被GC回收)。Unsafe类,提供了JNI某些功能的简单替代:确保高效性的同时,使事情... 阅读全文
posted @ 2015-11-08 22:35 素轩 阅读(11765) 评论(4) 推荐(1) 编辑
摘要: (八)模板方法模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。templateMethod()会依次调用operationA(),operationB()。这两个方法,可以为抽象方法,这时,每个扩展子类都必须... 阅读全文
posted @ 2015-11-08 22:33 素轩 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 在编写和维护公司的现有代码的时候,我经常思考的问题是:怎样的系统算一个好的系统?如何设计具有扩展、可维护、复用的系统,它能最大限度的应对产品经理不断变化的需求。答案似乎是:设计模式。Remember , knowing concepts like abstraction, inheritance, ... 阅读全文
posted @ 2015-11-08 22:31 素轩 阅读(622) 评论(0) 推荐(0) 编辑