摘要: 什么是AQS AQS(AbstractQueuedSynchronizer)是JDK下提供的一套用于实现基于FIFO等待队列的阻塞锁和相关的同步器的一个同步框架。这个抽象类被设计为作为一些可用原子int(private volatile int state)值来表示状态的同步器的基类(如:独占锁。1 阅读全文
posted @ 2019-06-25 20:38 工作中的点点滴滴 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 简介 使用锁时,线程获取锁是一种悲观锁策略,即假设每一次执行临界区代码都会产生冲突,所以当前线程获取到锁的时候同时也会阻塞其他线程获取该锁。而CAS操作(又称为无锁操作)是一种乐观锁策略,它假设所有线程访问共享资源的时候不会出现冲突,既然不会出现冲突自然而然就不会阻塞其他线程的操作。因此,线程就不会 阅读全文
posted @ 2019-06-25 10:30 工作中的点点滴滴 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 术语定义 术语 英文单词 描述 共享变量 在多个线程之间能够被共享的变量被称为共享变量。共享变量包括所有的实例变量,静态变量和数组元素。他们都被存放在堆内存中,Volatile只作用于共享变量。 内存屏障 Memory Barriers 是一组处理器指令,用于实现对内存操作的顺序限制。 缓冲行 Ca 阅读全文
posted @ 2019-06-24 18:33 工作中的点点滴滴 阅读(64) 评论(0) 推荐(0) 编辑
摘要: Thread图解 Thread类包含方法过多,目前只截取部分 Thread中的实例方法 Thread类中的方法调用方式: 1、this.XXX() 这种调用方式表示的线程是线程实例本身 2、Thread.currentThread.XXX()或Thread.XXX() 这种调用方式表示的线程是正在执 阅读全文
posted @ 2019-06-21 19:28 工作中的点点滴滴 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 开启线程执行任务,可以使用Runnable(无返回值不支持上报异常)或Callable(有返回值支持上报异常)接口去实现。若是开启线程池并需要获取结果归集的情况下,如何实现,以下主要介绍几种方式。 以下介绍的接口或类都存在于并发包java.util.concurrent.*中,我们主要从类图着手看齐 阅读全文
posted @ 2019-06-20 13:39 工作中的点点滴滴 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 背景 Java8的stream接口极大地减少了for循环写法的复杂性,stream提供了map/reduce/collect等一系列聚合接口,还支持并发操作:parallelStream。 Java8并行流ParallelStream和Stream的区别就是Stream支持行执行,而Parallel 阅读全文
posted @ 2019-05-31 22:38 工作中的点点滴滴 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 报错内容 Error running 'SchemeSnapshotReadActionDelayNotifyConsumerMockTest'.onMessage: Command line is too long. Shorten command line for SchemeSnapshotR 阅读全文
posted @ 2020-12-23 11:15 工作中的点点滴滴 阅读(1146) 评论(0) 推荐(0) 编辑
摘要: Comparable 包名:java.lang public interface Comparable<T> { /** * Compares this object with the specified object for order. Returns a * negative integer, 阅读全文
posted @ 2020-12-18 20:15 工作中的点点滴滴 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 一、概念 行为型模式 观察者模式是一种发布-订阅的形式,定义对象间的一种一对多的关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。 观察者模式的两种模型: 推:主题对象向观察者推送主题的详细信息,不管观察者是否需要。推送的信息通常是主题对象的全部或部分数据。 拉:主题对象在通 阅读全文
posted @ 2020-12-18 20:11 工作中的点点滴滴 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 策略模式和工厂模式看着很像,总会让人混淆,这到底采用的是什么模式? 差异: 工厂模式: 创建型模式,它的作用就是创建对象; 关注的是对象的封装; 工厂模式是接受指令,创建出符合要求的实例,它主要解决的是资源的统一分发,将对象的创建完全独立出来,让对象的创建和具体的使用耦合度降低了。 策略模式: 行为 阅读全文
posted @ 2020-12-18 19:29 工作中的点点滴滴 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 一、概念 行为型模式 在策略模式中,一个类的行为或其算法可以在运行时更改。创建表示各种策略的对象和一个行为随着策略对象改变而改变的context对象。策略对象改变context对象的执行算法。 策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换。策略模式 阅读全文
posted @ 2020-12-18 15:00 工作中的点点滴滴 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 一、概念 结构型模式 给某一对象提供给一个代理类,并由代理对象控制对原对象的引用。 代理模式实现(三要素) 一句话:客户端通过代理类来调用目标方法,代理类会将所有的方法调用分派到目标对象上反射执行,还可以在分派过程中添加"前置通知"和后置处理。 一个接口,接口中的方法是具体要实现的; 一个被代理类, 阅读全文
posted @ 2020-12-18 14:59 工作中的点点滴滴 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 工厂模式分为三种: 简单工厂模式(也叫静态工厂模式)、工厂方法模式、抽象工厂模式。以下会分别介绍这三种工厂模式。 一、概念 创建型模式 工厂模式提供了一种创建对象的最佳方式。它最关心的是最终创建的对象,而不关心创建的过程。 功能: 实例化对象,用工厂方法代替new,实现了创建者和调用者的分离; 将选 阅读全文
posted @ 2020-12-18 14:58 工作中的点点滴滴 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 本文主要从以下几点介绍: 什么是设计模式 设计模式六大原则 设计模式中三个关键字 MVC设计模式 一、什么是设计模式 1、概念 设计模式(Design pattern)是一套被反复利用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了代码可重用、可扩展、让代码更容易地被他人理解、 阅读全文
posted @ 2020-12-16 17:48 工作中的点点滴滴 阅读(97) 评论(0) 推荐(0) 编辑
摘要: redis支持RDB和AOF两种持久化机制,持久化可以避免因进程退出而造成数据丢失。 两种持久化可以单独使用其中一种,但更多情况下是将二者结合使用。 一、RDB持久化 RDB持久化把当前进程数据生成快照(.rdb)文件保存到硬盘的过程,有手动触发和自动触发。 redis会在以下几种情况下对数据进行快 阅读全文
posted @ 2019-08-18 15:45 工作中的点点滴滴 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 一、背景 线上你写代码的时候,想当然的认为写进 redis 的数据就一定会存在,后面导致系统各种 bug,谁来负责? 常见的有两个问题: 往 redis 写入的数据怎么没了? 可能有同学会遇到,在生产环境的 redis 经常会丢掉一些数据,写进去了,过一会儿可能就没了。我的天,同学,你问这个问题就说 阅读全文
posted @ 2019-08-18 15:45 工作中的点点滴滴 阅读(16104) 评论(2) 推荐(1) 编辑