- 博客(14)
- 收藏
- 关注
原创 Redis基础
Redis介绍 Redis是一个非关系型数据库,内存数据库。 Redis特性 丰富的数据类型 进程内与跨进程 功能丰富:持久化机制、过期策略 支持多种汇编语言 高可用 Redis安装 在这里就不想赘述,Redis的安装网上一大把。 Linux下安装(主流) Windows安装(微软开发的,很久没更新,自己玩还行。) 安装完成后记得修改redis.conf # 后台运行 daemonize ...
2019-11-03 17:25:44
228
原创 ZooKeeper使用-java
public interface Perms { int READ = 1 << 0; //读权限 int WRITE = 1 << 1;//写权限 int CREATE = 1 << 2;//创建权限 int DELETE = 1 << 3;//删除权限 int ADMIN = 1 << ...
2019-11-01 23:00:43
315
原创 手写RPC框架优化(一)
上次手写了一个简单的RPC框架,这次对其进行优化升级,添加了版本号,利用Spring进行管理,详细修改过程请看代码。 首先在rpc-server-provider模块下pom文件导入Spring依赖。 <dependency> <groupId>org.springframework</groupId> <artifactId>spr...
2019-11-01 11:21:28
290
原创 手写RPC通信框架
RPC框架就是一个远程调用,不需要客户端去了解底层通信协议而进行数据交换,现有的RPC框架有Dubbo、Thrift(跨语言)、webservice、hessian 基于TCP、HTTP、IO(NIO) == ...
2019-10-31 21:21:19
220
原创 自定义编写SpringBootStarter
Starter命名规则 官方命名:spirng-boot-starter-{name} 非官方命名:{name}-spring-boot-starter 自定义Starter编写 本次编写基于maven quikstart 初始的构建目录: 在此定义一个接口,功能是将任意类型转化成字符串。 package com.starter.format; public interface Format...
2019-10-30 20:13:26
192
原创 Spring Boot核心原理分析--自动配置
什么是SpringBoot 简而言之是一个服务于框架的框架,Spring全家桶的配置本身过于繁琐,所以SpringBoot提供了解决 思路,就是约定优于配置。SpringBoot本身并没有新技术,只是对于已有的框架进行封装,达到开箱即用。 约定优于配置 在SpringBoot中的体现在 1.Maven的目录结构(默认会以jar方式打包,默认会有resources文件夹) ...
2019-10-30 18:06:28
313
原创 阻塞队列ArrayBlockingQueue源码分析
加粗 斜体 标题 删除线 无序 有序 待办 引用 代码块 表格 超链接 图片 导入 导出 摘要 保存 撤销 重做 帮助 ## 什么是阻塞队列 阻塞队列是J.U.C中提供的一个阻塞工具,相信大家对于生产者消费者模式都比较熟悉,而阻塞队列就可以很好的去实现这种设计模式,来进行相应场景下的解耦。 在J.U.C中提供了7个阻塞队列(Java8)分别是 种类 详述 ArrayBlocking...
2019-10-21 11:01:03
193
原创 基于JDK1.8的ConcurrentHashMap中put相关部分源码分析(非红黑树部分)
ConcurrentHashMap基本介绍 ConcurrentHashMap是J.U.C中提供的一个线程安全高效的HashMap,是Map的派生类,所以API与HashMap相似。在本文主要基于JDK1.8来进行分析CHM,1.7与1.8 的主要区别在于: 1.7版本: 1.ConcurrentHashMap由一个个Segment 组成,Segment 继承ReentrantLock来进行加锁,...
2019-10-14 16:24:03
216
原创 Lock及AQS底层分析
Lock基本介绍 Lock接口是除了synchronized另一种加锁方式,它拥有比synchronized更加灵活的加锁方式,是JUC中的核心组件 Lock本质上是一个接口,它定义了释放锁与获得锁的抽象方法。实现Lock接口的类主要有以下几个实现 ...
2019-10-08 13:03:15
396
原创 CyclicBarrier源码阅读
CyclicBarrier介绍 CyclicBarrier主要是一个实现可循环屏障的工具类,比如设置5个线程运行才可以主线程操作。可以使用在关联数据的批量处理 CyclicBarrier基本使用 package com.juc; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.Cycl...
2019-09-29 09:48:33
144
原创 Semaphore源码解析
Semaphore介绍 信号灯、信号量,主要功能是限制限制能够运行的线程量,可以理解为把线程存到一个容量有限的栈、队列,如果其中的线程没有运行结束、异常终止就不会有新的线程得到运行,可以起到限流的作用。 Semaphore基本使用 public class SemaphoreDame { static class Car extends Thread{ private i...
2019-09-26 11:11:35
156
原创 CountDownLatch源码阅读
CountDownLatch源码阅读 CountDownLatch介绍 CountDownLatch是JUC中的一个并发工具类,主要作用是阻塞某线程至其他线程完成后,再调用本线程。类似于thread.join() CountDownLatch基本使用 CountDownLatch countDownLatch=new CountDownLatch(3);//在构造时传入需要等待的线程数 new T...
2019-09-25 10:07:11
173
原创 AQS中Node常量含义
AQS中Node常量含义 int CANCELLED = 1;//waitStatus值为1时表示该线程节点已释放(超时、中断),已取消的节点不会再阻塞。 int SIGNAL = -1;//waitStatus为-1时表示该线程的后续线程需要阻塞 int CONDITION = -2; //waitStatus为-2时,表示该线程在condition队列中阻塞(Condition有使用)...
2019-09-25 09:39:36
2244
原创 Condition源码阅读
JUC之常用工具类 Condition 介绍 Condition是JUC中提供的类似于线程通讯的工具类,相似于wait/notify,可以让某些线程一起等待某个条件(condition),只有满足条件时,线程才被唤醒。 Condition基本使用 查看源码即可了解或者相关API文档都可以在此不进行赘述,就举一个简单的实现案例。 package com.jum; import java.util....
2019-09-24 14:16:10
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅