摘要:
不可变对象需要满足的条件 1 对象创建以后其状态就不能修改 2 对象所有域都是final类型 (这样只能对每个域赋值一次,通过构造器初始化所有成员,进行深度拷贝,在get方法中不直接返回对象本身,而是克隆对象并返回克隆) 3 对象是正确创建的(在对象创建期间,this引用没有逸出) 阅读全文
摘要:
/** * ReentrantLock是独占锁 * Lock锁的使用,把锁和要用锁同步的代码放在一起,这里就是放在Printer类中了 * 获取到锁后,最后要在finally代码块中手动释放锁 */ public class LockTest { public static void main(String[] args) { Printer p... 阅读全文
摘要:
/*** * 三个线程读数据,三个线程写数据 * */ public class ReadWriteLockTest { public static void main(String[] args) { final ReadWrite rw = new ReadWrite(); for (int i = 0; i < 3; i++) { ... 阅读全文
摘要:
public class ReentrantReadWriteLockTest { public static void main(String[] args) throws InterruptedException { // testReenter(); // testUpgrade(); testDowngrade(); } /** * 在同一个线程中,在没有释放写锁的情况下,就去申请读锁,这 阅读全文