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