ReentrantLock实现原理深入探究

前言 这篇文章被归到Java基础分类中,其实真的一点都不基础。网上写ReentrantLock的使用、ReentrantLock和synchronized的区别的文章很多,研究ReentrantLock并且能讲清楚ReentrantLock的原理的文章很少,本文就来研究一下ReentrantLo...

2018-11-19 20:10:08

阅读数 46

评论数 0

分布式任务编排调度框架设计

运维焦油坑 随着互联网+和去IOE浪潮的推进,传统行业X86服务器的数量逐渐增多。服务器数量剧增带来的直接后果就是运维复杂度的增加。原本一个人可以轻松维护十几台甚至几十台服务器:写几个常用的监控和配置下发脚本、或者利用cronTab制作几个定时任务就可以搞定。当服务器的数量由几十上升到几百,...

2018-09-18 16:53:18

阅读数 398

评论数 0

elasticJob分片跑批

业务迅速发展带来了跑批数据量的急剧增加。单机处理跑批数据已不能满足需要,另考虑到企业处理数据的扩展能力,多机跑批势在必行。多机跑批是指将跑批任务分发到多台服务器上执行,多机跑批的前提是”数据分片”。elasticJob通过JobShardingStrategy支持分片跑批。 跑批配置需要做如下修...

2018-09-18 10:18:23

阅读数 1261

评论数 0

gRPC服务发现&负载均衡

构建高可用、高性能的通信服务,通常采用服务注册与发现、负载均衡和容错处理等机制实现。根据负载均衡实现所在的位置不同,通常可分为以下三种解决方案:1、集中式LB(Proxy Model)在服务消费者和服务提供者之间有一个独立的LB,通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy...

2018-07-03 20:48:55

阅读数 257

评论数 0

ConcurrentHashMap的jdk1.7源码

ConcurrentHashMap的锁分段技术:假如容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术。首先将数据分成一段一段的存储,然后给每...

2018-05-24 23:29:44

阅读数 20

评论数 0

HashMap源码解析(基于JDK1.7)

一、HashMap简介哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理就是基于此。那么什么是哈希表呢? 在讨论哈希表之前,我们先大概了解下其他数据结构在新...

2018-05-24 13:05:38

阅读数 39

评论数 0

Java源码分析之HashMap(JDK1.8)

一、HashMap概述  HashMap是常用的Java集合之一,是基于哈希表的Map接口的实现。与HashTable主要区别为不支持同步和允许null作为key和value。由于HashMap不是线程安全的,如果想要线程安全,可以使用ConcurrentHashMap代替。二、HashMap数据...

2018-05-24 13:03:01

阅读数 24

评论数 0

在Java路上,看过的一些书、源码和框架

参考文章:https://www.jianshu.com/p/4a41ee88bd82面试经历关于Java面试,你应该准备这些知识点关于Java面试,你应该准备这些知识点(续)前段时间抽空整理了面试经历,收到不少的关注,很多同学私信我平时都是如何get到这些知识的,是否有一些相关的书单,Java的...

2018-05-15 13:18:14

阅读数 130

评论数 0

ThreadLocal原理详解

ThreadLocal是什么首先,它是一个数据结构,有点像HashMap,可以保存"key : value"键值对,但是一个ThreadLocal只能保存一个,并且各个线程的数据互不干扰。ThreadLocal<String&amp...

2018-05-15 13:08:40

阅读数 26

评论数 0

java程序员必精--从源码讲解java线程池ThreadPoolExecuter的实现原理、各种坑、如何监控

类结构图示例自带线程池的各种坑基础参数源码分析java.util.concurrent.ThreadPoolExecutor构造方法重要的成员变量ctl线程池状态要牢记以下几点:与ctl相关的三个方法workerscompletedTaskCount线程池的运行添加任务execute方法往线程池添...

2018-05-14 19:23:09

阅读数 45

评论数 0

深入分析java线程池的实现原理

前言线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池对线程进行统一分配、调优和监控,有以下好处:1、降低资源消耗;2、提高响应速度;3、提高线程的可管理性。Java1.5中引入的Executor框架把任务的提交和执行进行解耦,只需要定义好任务,然后提交...

2018-05-14 19:19:43

阅读数 27

评论数 0

jdk的动态代理及为什么需要接口

参考文章:https://blog.csdn.net/zxysshgood/article/details/78684229动态代理有关,无非是使用JDK动态代理,和cglib动态代理。一直不待明白的是为什么,jdk的动态代理需要接口才能实现,这也是其短板和令人诟病的地方。很多的博文说的很复杂,代...

2018-05-14 16:34:46

阅读数 1066

评论数 0

Java中的IO流系统详解

摘要: Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 jav...

2017-08-25 09:10:29

阅读数 90

评论数 0

提示
确定要删除当前文章?
取消 删除