慢一拍的coder

java爱好者, 分享技术

并发工具类之CountDownLatch(一)

1:写在前面 CountDownLatch是并发工具类,旨在当n个线程完成某一个任务,或达到某一种状态的时候,其他的线程才会开始工作,否则的话会一直处于阻塞状态 2:架构设计 CountDownLatch内部使用的是一个继承于AbstractQueuedSynchronizer(AQS)...

2019-09-03 22:39:42

阅读数 8

评论数 0

Redis之备份机制(一)

目录 1:写在前面 2:两种备份机制 2.1:RDB(redis-database) 2.2:AOF(append-only-file) 3:总结 1:写在前面 Redis是一种NOSQL数据库,和 memecache最大的区别是Redis是可以持久化的,那么是怎么持久化的呢,以及持...

2019-08-31 21:12:44

阅读数 14

评论数 0

Redis之事务(二)

目录 写在前面 开工 1:是什么 2:能做什么 3:怎么做 3.1:MULTI:开启一个事务 3.2:EXEC:执行(commit) 3.3:DISCARD:放弃当前事务,放弃队列中所有命令 3.4:UNWATCH:取消所有监控的key 3.5:WATCH:监控一个或多个key...

2019-08-31 21:12:37

阅读数 10

评论数 0

java线程池详细讲解代码篇(二)

目录 线程池实现原理 1:使用工具类Executors来生成各种不同线程池 2:底层都是通过new ThreadPoolExecutor来实现的 3:核心方法 几种线程池的测试 1:newFixedThreadPool 2:newSingleThreadExecutor 3:new...

2019-08-30 18:53:03

阅读数 5

评论数 0

java线程池拒绝策略代码篇(三)

目录 写在前面 四种拒绝策略 1:AbortPolicy(抛出异常) 1.1代码 1.2运行结果 2:CallerRunsPolicy(谁调用谁运行) 2.1代码 2.2结果 3:DiscardPolicy(直接丢弃) 3.1代码 3.2结果 4:DiscardOldest...

2019-08-30 18:52:45

阅读数 9

评论数 0

java线程池详细讲解理论篇(一)

目录 1:写在前面 1.1:什么是线程池 1.2:为什么需要线程池 2:常见的线程池 2.1:newFixedThreadPool 2.2:newSingleThreadExecutor 2.3:newCachedThreadPool 2.4:newSingleThreadSche...

2019-08-30 11:35:41

阅读数 10

评论数 0

直观的理解java死锁以及排查

目录 1:什么是死锁 2:发生死锁会出现什么情况 3:演示环节,你说你NB,show me the code 1:什么是死锁 两个及以上线程相互持有对方所需要的资源(锁)而不释放,在一种我等你,你等我的状态僵持 2:发生死锁会出现什么情况 程序运行不下去,卡着不动了 3:演示环节,...

2019-08-30 10:25:08

阅读数 20

评论数 0

Zookeeper学习之路-源码-客户端(二)

目录 从哪里开始阅读​ 客户端是怎么连接服务器的 从哪里开始阅读 我们可以从zk自带的脚本中入手,一般都是在安装目录/bin 下面,然后我们发现有一个 zkCli.sh 的 shell文件 使用cat zkCli.sh 打开sh文件,发现在最下面有这么一行,org.apache....

2019-08-24 23:37:51

阅读数 19

评论数 0

Zookeeper学习之路-入门(一)

目录 写在前面 数据结构 节点类型 1:持久节点: 2:持久顺序节点: 3:临时节点: 4:临时顺序节点: ACL机制 1:节点的访问控制 2:命令设置: 1:getAcl 2:setAlc 3:addauth 3:命令结构组成 1:scheme 2:id 验证模式...

2019-08-24 22:30:16

阅读数 22

评论数 0

Tomcat学习之路(一)

目录 写在前面 体系架构 1:tomcat:web的servlet容器 2:connector 3:container,在tomcat中共有四个,每一个都有标准的实现。 启动流程 双亲委派 tomcat优化 1:在连接器方面 2:如果项目是一个非页面项目,可以考虑不适用jasp...

2019-08-20 11:42:14

阅读数 28

评论数 0

学习JVM的心得体会(一)

目录 写在前面 来了,来了,他真的来了 1:类加载 2:java-volatite 1:volatite的实现原理 2:锁的内存语义 3:JDK对锁的更多的优化措施 3:JVM优化 1:优化的时机 2:优化参数,标准 3:优化姿势 写在前面 对于一个高级开发来说,光会使用...

2019-08-20 00:25:48

阅读数 26

评论数 0

深入了解RPC之4个关键点,以及优化姿势

写在前面 在我们日常开发的时候,为了满足产品(chouren)大大的需求难免会调用其它三方提供的服务,或者是公司内部的一些服务,可能你的调用机器和被调用机器的部署不在同一台物理机/虚拟机上(目前普遍使用docker/k8s部署),这个时候就需要远程过程调(RPC)用来解决服务调用的难题。 什么...

2019-07-28 22:58:58

阅读数 20

评论数 0

HTTPS协议

目录 1、前言 2、原理 3、总结 1、前言 可靠安全的应用层的协议,相比HTTP协议来说更安全 2、原理 1:服务器端生成 公钥A-私钥对 2:客户端与服务器端进行连接,连接成功后,拿到服务器端生成的公钥A 3:客户端生成一个随机数(对称密钥),使用服务器的公钥A进行加...

2019-07-12 12:51:46

阅读数 11

评论数 0

Mysql架构详解解析

前言 在我们日常开发中使用的最多的还是mysql,毕竟是开源的,在对于一个高工来说,需要了解或掌握数据库的基本架构才能更好的发挥数据库的特长,以便于在外面对数据库的开发过程中,少踩坑,将数据库的性能发挥到最优,废话不多说,直接上图。 架构图 各个组件详解 Client Connecto...

2019-06-25 21:55:09

阅读数 82

评论数 0

初识JVM之JAVA内存模型(JMM)

目录 1:JMM---传说中的JAVA内存模型 2:为什么要有JMM 3:JMM解析 4:JMM会带来什么问题 5:是怎么解决的 1:JMM---传说中的JAVA内存模型 2:为什么要有JMM 在我们日常的开发中,可能会涉及到多线程的业务,而JMM是多线程操作的基础 3:JM...

2019-06-17 21:54:02

阅读数 37

评论数 0

初始类加载之SPI

1:SPI---Service Provider Interface : 服务提供接口,结构图如下: 2:本质:JavaSPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制. 3:实现原理 3.1:首先解决第一个疑问,为什么这个sp...

2019-06-17 00:01:33

阅读数 32

评论数 0

浅谈网络传输层协议之TCP协议

1:TCP协议是网络协议中的传输层的一种可靠传输的协议,在很多框架或者是中间件中都使用TCP协议,原因还得归功于 TCP协议的可靠性传输,TCP协议能做到可靠性传输的原因是基于"三次握手" 2:最开始的时候client和server这两端都是关闭状态...

2019-06-13 23:07:34

阅读数 41

评论数 0

浅谈网络模型之OSI模型,TCP/IP模型

1:在我们日常的软件开发过程中,不管是使用那种框架,只要涉及到跨应用的传输,一般的,都是涉及到数据流的网络传输,在数据流的网络传输过程中,需要网络模型来支撑,目前主流的有两种网络模型--OSI网络模型,TCP/IP网络模型,如下图 2:OSI网络模型,TCP/IP网络模型解析 ...

2019-06-12 22:51:23

阅读数 35

评论数 0

浅谈MySQL之备份复制 Master-Slave

在我们日常的数据库开发中,由于业务产品的需要,会涉及到数据库的备份,以下将会详细分析数据库的备份原理 1:数据库的主从备份流程图 2: 对于javaer操作数据库而言,我们一般是使用jdbc的,在存在主从的数据库架构中,一般会有Master,Slave服务器,在使用jdbc操作数据库的时候...

2019-06-11 22:24:49

阅读数 82

评论数 0

调用dubbo接口参数中包含LocalDateTime类型的无法序列化问题--failed to send message

在低版本的dubbo(2.5.3)中调用dubbo接口,可能会发生 rpcException.----failed to send message -----原因解析:在我们使用的dubbo中,一般使用的是dubbo协议,而在dubbo协议中默认使用的序列化协议是hessian协议来序列化的,在...

2019-06-08 01:18:26

阅读数 191

评论数 0

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