摘要:
一、定义 将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。 类似组将一台电脑,有主机、屏幕、鼠标、键盘等,你将这些组件的型号给组装店说好,他就会根据你的需求组装电脑,但是你不会看见具体的组装过程。建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加 阅读全文
摘要:
工厂相关模式有两种,分别是: (1)工厂方法模式 (2)抽象工厂模式 接下来分别说下这两种工厂模式: 一、工厂方法模式 (1)定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。 其实就是专职专产,比如某条产品线就只生产一种产品。 (2)实例 阅读全文
摘要:
上一篇聊了一下Semaphore信号灯的用法及源码,这一篇来聊一下CyclicBarrier的用法及解析。 官网解释: 允许一组线程全部等待彼此达到共同屏障点的同步辅助。循环阻塞在涉及固定大小的线程方的程序中很有用,这些线程必须偶尔等待彼此。屏障被称为循环 ,因为它可以在等待的线程被释放之后重新使用 阅读全文
摘要:
官方解释: 一个计数信号量。在概念上,信号量维持一组许可证。如果有必要,每个acquire()都会阻塞,直到许可证可用,然后才能使用它。每个release()添加许可证,潜在地释放阻塞获取方。但是,没有使用实际的许可证对象; Semaphore只保留可用数量的计数,并相应地执行。信号量通常用于限制线 阅读全文
摘要:
CountDownLatch是JUC包下的一个工具类,允许一个或多个线程等待,直到其他线程中执行的一个放行操作完后,等待线程才会继续往下执行的同步辅助。 可用于一个或多个线程中等待其他线程完成某项操作后再运行的场景。 首先看一下其用法:1、先创建一个CountDownLatch的实例 参数是计数器( 阅读全文
摘要:
上一篇简略说了一下Synchronized和Lock,今天就来说一下Java的锁机制。 Java的锁机制主要分为四种,分别是 (1)公平锁、非公平锁 (2)可重入锁 (3)自旋锁 (4)共享锁、独占锁 接下来一一说一下这四种锁 一、公平锁、非公平锁 (1)公平锁:指多个线程按照申请锁的顺序来获取锁, 阅读全文
摘要:
锁是用来在多线程并发阶段保障数据同步的重要手段,防止出现脏数据,加锁代码在某个时间点只能由一个线程运行,其他线程等待。 普遍熟知的锁是synchronized关键字和Lock类。 一、synchronized关键字 这个在同步中是最常用的,分成对象锁和类锁,可以对方法和代码块进行加锁。 1、对象锁, 阅读全文
摘要:
之前粗略看了一下List和Map,今咱来聊一下Set。 主要看以下几个: (1)HashSet (2)Collections.synchronizedSet (3)LinkedHashSet (4)CopyOnWriteArraySet (5)TreeSet 一、HashSet HashSet是日常 阅读全文
摘要:
聊一下Map。主要有以下几个类: (1)HashMap (2)Hashtable (3)ConcurrentHashMap (4)LinkedHashMap (5)WeakHashMap 环境是java8,上述hashMap和ConcurrentHashMap在java7的时候实现会有不同。 Map 阅读全文
摘要:
开始看一下集合Collection,List是Collection的一个子接口,主要是看一下其下的几个类。 1、AbstractList 2、ArrayList 3、Collections.synchronizedList 4、Vector 5、LinkedList 6、CopyOnWriteArr 阅读全文