自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (3)
  • 收藏
  • 关注

原创 Redis-Cell实现分布式限流

环境要求基于redis 4.0 的单点或者集群GLIBC_2.18redis-cell使用说明命令示例:CL.THROTTLE key_test 100 400 60 3CL.THROTTLE: redis命令key_test : redis key100: 官方叫max_burst,初始值,不能为0200: 在指定时间窗口内允许访问的次数60: 指定的时间窗口,单位:秒3: 表示本次要申请的令牌数,不写则默认为 1响应如下:127.0.0.1:6379> CL.T

2020-07-20 19:40:27 1448

原创 读锁有什么用?读为什么要加锁?

读为什么要加锁?1、有些同学认为读锁没有用,他们的理由是:读操作又不会修改数据,想读就读呗,无论读的是就值还是新值,反正能读到。2、也有同学认为读锁是为了防止多线程读到的数据不一致。我认为不是这个原因,只需要问两个问题就知道了,首先问不一致的是什么?然后反问不一致会导致什么问题呢?有些同学认为不一致就是有些线程读的是旧值,有些读的是新值,所以不一致。但是反问导致什么问题,就不是很好回答了,可能回答说为了保险吧,哈哈哈。实际上即使加读锁,还是会存在有的线程读旧值,有的线程读新值,甚至非公平锁情况下,

2020-07-16 19:58:55 15137 21

原创 java 1.8 集合接口一览表

Collection 集合接口 抽象接口,没有直接实现类   int size() 返回元素个数   boolean isEmpty() 查询是否为空   boolean contains(Object o) 查询是否包含,通过equals方法判断   boolean containsAll(Collection<?> c) 批量判断是否包含   boolean add(E e) 添加元素,方法结束后集合

2020-07-14 18:43:11 270

原创 彻底理解死锁和活锁 java实现

以下使用转账场景来解释说明以上问题,首先认识两个基础类:抽象账户类和工具类:抽象账户类/** * 账户抽象类,由子类实现转账操作 */public abstract class AbstractAccount { //用户名 public String name; //余额 public int balance = 0; //账户锁 public final Lock LOCK = new ReentrantLock(); //构造方法

2020-07-10 11:29:39 1869 1

原创 java stop方法为什么不能用?

一方面stop线程非常粗暴,除非可能执行finally代码块以及释放synchronized外,线程将直接被终止,非常粗暴,此外如果线程持有JUC的互斥锁,还可能导致锁来不及释放,造成其他线程永远等待的局面。JUC是Lock不是自动释放的,需要主动释放并且要在finally代码块中释放,实际上是stop一个线程并不会跳过finally代码块,但是如果还没有执行try代码块就被stop了,那就不会执行finally代码块,这会造成"锁"永远不会释放,而其他线程永远无法获取锁的尴尬局面了。测试代码:pub

2020-07-07 23:09:00 838

原创 Java 多线程 深入理解volatile语义

1、解决可见性问题CPU为了避免频繁读内存导致的性能降低,所以CPU内部设计了寄存器和高速缓存来提供数据访问速度。1、线程重复读取一个变量时,会使用缓存中的值,而不会读内存,所以存在读提前。2、线程首次从内存读取某个变量的同时会缓存附近的数据,所以存在读提前。3、线程写变量时,会先写入CPU缓存,然后异步刷新到内存,所以存在写延迟。因为读提前,所以当线程读取某个变量时,可能并不是从内存中读取,而是来自CPU缓存,那么不同的线程中见到的变量可能因为加载到缓存中的时间不同而不同;因为写延迟,多线程中

2020-07-03 16:52:11 281

hbaes-core-adapter-2.2.4.jar

hbaes-core-adapter-2.2.4.jar

2024-07-30

HbaseGUI.zip

HbaseGUI.zip

2024-07-30

kettle-pack镜像

kettle-pack镜像,修改数据库名为kettle_pack,数据库配置在kettle-pack/tomcat/webapps/ROOT/WEB-INF/classes/config.properties,编辑后保存镜像

2023-05-06

starter demo

starter demo

2023-04-25

websocket聊天室源码

运行后直接访问localhost:8080,一个页面模拟一个客户端

2022-11-18

springboot优雅停机实战demo

springboot优雅停机实战demo

2022-03-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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