摘要: 什么是AQS AQS(AbstractQueuedSynchronizer)是JDK下提供的一套用于实现基于FIFO等待队列的阻塞锁和相关的同步器的一个同步框架。这个抽象类被设计为作为一些可用原子int(private volatile int state)值来表示状态的同步器的基类(如:独占锁。1 阅读全文
posted @ 2019-06-25 20:38 工作中的点点滴滴 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 简介 使用锁时,线程获取锁是一种悲观锁策略,即假设每一次执行临界区代码都会产生冲突,所以当前线程获取到锁的时候同时也会阻塞其他线程获取该锁。而CAS操作(又称为无锁操作)是一种乐观锁策略,它假设所有线程访问共享资源的时候不会出现冲突,既然不会出现冲突自然而然就不会阻塞其他线程的操作。因此,线程就不会 阅读全文
posted @ 2019-06-25 10:30 工作中的点点滴滴 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 术语定义 术语 英文单词 描述 共享变量 在多个线程之间能够被共享的变量被称为共享变量。共享变量包括所有的实例变量,静态变量和数组元素。他们都被存放在堆内存中,Volatile只作用于共享变量。 内存屏障 Memory Barriers 是一组处理器指令,用于实现对内存操作的顺序限制。 缓冲行 Ca 阅读全文
posted @ 2019-06-24 18:33 工作中的点点滴滴 阅读(61) 评论(0) 推荐(0) 编辑
摘要: Thread图解 Thread类包含方法过多,目前只截取部分 Thread中的实例方法 Thread类中的方法调用方式: 1、this.XXX() 这种调用方式表示的线程是线程实例本身 2、Thread.currentThread.XXX()或Thread.XXX() 这种调用方式表示的线程是正在执 阅读全文
posted @ 2019-06-21 19:28 工作中的点点滴滴 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 开启线程执行任务,可以使用Runnable(无返回值不支持上报异常)或Callable(有返回值支持上报异常)接口去实现。若是开启线程池并需要获取结果归集的情况下,如何实现,以下主要介绍几种方式。 以下介绍的接口或类都存在于并发包java.util.concurrent.*中,我们主要从类图着手看齐 阅读全文
posted @ 2019-06-20 13:39 工作中的点点滴滴 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 背景 Java8的stream接口极大地减少了for循环写法的复杂性,stream提供了map/reduce/collect等一系列聚合接口,还支持并发操作:parallelStream。 Java8并行流ParallelStream和Stream的区别就是Stream支持行执行,而Parallel 阅读全文
posted @ 2019-05-31 22:38 工作中的点点滴滴 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 报错内容 Error running 'SchemeSnapshotReadActionDelayNotifyConsumerMockTest'.onMessage: Command line is too long. Shorten command line for SchemeSnapshotR 阅读全文
posted @ 2020-12-23 11:15 工作中的点点滴滴 阅读(995) 评论(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 工作中的点点滴滴 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 一、概念 行为型模式 观察者模式是一种发布-订阅的形式,定义对象间的一种一对多的关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。 观察者模式的两种模型: 推:主题对象向观察者推送主题的详细信息,不管观察者是否需要。推送的信息通常是主题对象的全部或部分数据。 拉:主题对象在通 阅读全文
posted @ 2020-12-18 20:11 工作中的点点滴滴 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 策略模式和工厂模式看着很像,总会让人混淆,这到底采用的是什么模式? 差异: 工厂模式: 创建型模式,它的作用就是创建对象; 关注的是对象的封装; 工厂模式是接受指令,创建出符合要求的实例,它主要解决的是资源的统一分发,将对象的创建完全独立出来,让对象的创建和具体的使用耦合度降低了。 策略模式: 行为 阅读全文
posted @ 2020-12-18 19:29 工作中的点点滴滴 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 一、概念 行为型模式 在策略模式中,一个类的行为或其算法可以在运行时更改。创建表示各种策略的对象和一个行为随着策略对象改变而改变的context对象。策略对象改变context对象的执行算法。 策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换。策略模式 阅读全文
posted @ 2020-12-18 15:00 工作中的点点滴滴 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 一、概念 结构型模式 给某一对象提供给一个代理类,并由代理对象控制对原对象的引用。 代理模式实现(三要素) 一句话:客户端通过代理类来调用目标方法,代理类会将所有的方法调用分派到目标对象上反射执行,还可以在分派过程中添加"前置通知"和后置处理。 一个接口,接口中的方法是具体要实现的; 一个被代理类, 阅读全文
posted @ 2020-12-18 14:59 工作中的点点滴滴 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 工厂模式分为三种: 简单工厂模式(也叫静态工厂模式)、工厂方法模式、抽象工厂模式。以下会分别介绍这三种工厂模式。 一、概念 创建型模式 工厂模式提供了一种创建对象的最佳方式。它最关心的是最终创建的对象,而不关心创建的过程。 功能: 实例化对象,用工厂方法代替new,实现了创建者和调用者的分离; 将选 阅读全文
posted @ 2020-12-18 14:58 工作中的点点滴滴 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 本文主要从以下几点介绍: 什么是设计模式 设计模式六大原则 设计模式中三个关键字 MVC设计模式 一、什么是设计模式 1、概念 设计模式(Design pattern)是一套被反复利用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了代码可重用、可扩展、让代码更容易地被他人理解、 阅读全文
posted @ 2020-12-16 17:48 工作中的点点滴滴 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 一、Redis主从复制 主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性 1. 主从复制的相关操作 配置主从复制方式一、新增redis6380.conf, 加入 slaveof 192.168.152.128 6379, 在6379启动完后再启6380,完成 阅读全文
posted @ 2019-08-18 15:45 工作中的点点滴滴 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 一、缓存雪崩 1、概念 缓存同一时间实效(由于设置相同的缓存时间),同时访问数据库,从而对数据库cpu和内存造成巨大压力,严重的会导致数据库宕机,从而形成一系列连锁反应,造成整个系统崩溃。 2、解决方案 A、使用锁或队列访问数据库(非高并发场景,不然严重阻塞) B、设置过期标志更新缓存(数据过期时长 阅读全文
posted @ 2019-08-18 15:45 工作中的点点滴滴 阅读(318) 评论(0) 推荐(0) 编辑