摘要: 一.zookeeper是什么zookeeper是一个高效的分布式协调服务,它暴露了一些公共服务,比如命名/配置管理/同步服务/群组服务等等。我们可以使用zk来实现比如达成共识/集群管理/leader选举等。(不用于大量数据的存储)协调:多个节点一起完成的一个动作zoo... 阅读全文
posted @ 2018-05-24 14:59 无名草110 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 一.垃圾回收的基本概念垃圾回收(GC,Garbage Collection),指内存中不会再被使用的对象清理掉。垃圾回收有很多种算法:如引用计数法、标记压缩法、复制算法、分代/分区的思想二.垃圾回收算法1.引用计数法:这是个比较古老而经典的垃圾收集算法,其核心就是在对... 阅读全文
posted @ 2018-05-21 09:50 无名草110 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 一.JVM的基本结构各自作用1.类加载子系统:负责从文件系统或者网络中加载Class信息,加载的信息存放在一块称之为方法区的内存空间2.方法区:存放类信息、常量信息、常量池信息、包括字符串字面量和数字常量等3.java堆:在jvm启动时建立,它是java程序最主要的内... 阅读全文
posted @ 2018-05-20 19:26 无名草110 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 1.java多线程中,可以使用synchronized关键字来实现线程间的同步互斥工作,其实还有个更优秀的机制来完成这个同步互斥的工作——Lock对象,主要有2种锁:重入锁和读写锁,它们比synchronized具有更强大的功能,并且有嗅探锁定、多路分支等功能。 2.ReentrantLock(重入 阅读全文
posted @ 2018-05-20 16:50 无名草110 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 一、CyclicBarrier 作用:所有线程准备好才进行,只要一条线程没准备好,都不进行 用法:所有线程准备好以后调用CyclicBarrier的await方法,然后主线程执行CyclicBarrier的countDown方法 实现需求:n个运动员(n个线程),全部准备好了才一起起跑。代码如下 二 阅读全文
posted @ 2018-05-20 11:43 无名草110 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 一、Executor概述为更好控制线程,jdk提供一套线程管理框架Executor,帮助开发人员有效地进行线程控制。它们都位于java.util.concurrent包中,是jdk并发包的核心。其中有个比较重要的类:Executors,他扮演着线程工厂的角色,我们可以... 阅读全文
posted @ 2018-05-19 16:20 无名草110 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 一、模式讲解: 类似是网购,网购发个请求下单,打包、出货、运输等等工作商家就会帮你处理好,你在家等收货就行了 二、模式示意图 流程讲解: 1.业务发起请求 2.系统接收到请求,并且立即返回,同时发起真正的请求 3.请求数据真正返回 三、代码实现 阅读全文
posted @ 2018-05-19 15:19 无名草110 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1.ConcurrentMap(1)ConcurrentMap两个重要的实现:ConcurrentHashMap和ConcurrentSkipListMap(支持并发排序,弥补ConcurrentHashMap,类似TreeMap)(2)ConcurrentHashM... 阅读全文
posted @ 2018-05-18 14:04 无名草110 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 方式1(推荐) 方式2(double check) 阅读全文
posted @ 2018-05-18 09:45 无名草110 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 线程死锁概念 两个线程A/B,A线程掌握着实例1的锁,要访问实例2的synchronized方法,但是实例2的锁被B所掌握着,然而B这时候又要访问实例1的synchronized方法,两个线程一直等着对方释放实例1/实例2的锁,造成程序无法进行下去,这种现象称为线程访问的死锁 代码示例 阅读全文
posted @ 2018-05-16 21:40 无名草110 阅读(170) 评论(0) 推荐(0) 编辑