摘要: 概述 ArrayList 是线程不安全的集合类,当多线程环境下,并发对同一个ArrayList执行add,可能会抛出java.util.ConcurrentModificationException的异常 例子 这边有个简单的程序,创建30个线程,分别对ArrayList执行add操作 public 阅读全文
posted @ 2020-09-17 22:41 风停了,雨来了 阅读(2249) 评论(0) 推荐(1) 编辑
摘要: 概述 CAS是Compare And Swap的简称,即:比较并交换Java中常见的是Atomic相关类使用了CAS,例如:AtomicInteger、AtomicBoolean等等实现CAS的底层用的是Unsafe操作类 先看个小例子 public static void main(String[ 阅读全文
posted @ 2020-09-17 16:48 风停了,雨来了 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 前言 Atomic家族主要是保证多线程环境下的原子性,相比synchronized而言更加轻量级。比较常用的是AtomicInteger,作用是对Integer类型操作的封装,而AtomicReference作用是对普通对象的封装。 对AtomicInteger原子性不了解的,可以看这篇:volat 阅读全文
posted @ 2020-09-17 10:52 风停了,雨来了 阅读(23083) 评论(0) 推荐(4) 编辑
摘要: 前言 有一天在看Unsafe.getUnsafe()源码时,发现该方法上有一个@CallerSensitive注解。类似的,在Class.forName方法也有该注解。它们的源码分别如下: @CallerSensitive public static Unsafe getUnsafe() { Cla 阅读全文
posted @ 2020-09-17 09:56 风停了,雨来了 阅读(4355) 评论(0) 推荐(3) 编辑
摘要: 概述 volatile是Java提供的轻量级的同步机制,保证了可见性,不保证原子性。 了解volatile工作机制,首先要对Java内存模型(JMM)有初步的认识: 每个线程创建时,JVM会为其创建一份私有的工作内存(栈空间),不同线程的工作内存之间不能直接互相访问JMM规定所有的变量都存在主内存, 阅读全文
posted @ 2020-09-16 17:56 风停了,雨来了 阅读(2331) 评论(0) 推荐(0) 编辑
摘要: 前言 当不同的进程,必须以独占资源的方式实现资源共享,就需要用到分布式锁。 安全和稳定性 分布式锁的实现,必须满足以下2个特性 独享互斥:在任意一个时刻,只能有一个客户端持有锁无死锁:既然有加锁,则必须存在解锁。即使持有锁的客户端崩溃宕机,锁仍然允许被其他客户端获取,不能造成无限期的等待 例子1 @ 阅读全文
posted @ 2020-09-16 14:18 风停了,雨来了 阅读(1109) 评论(0) 推荐(0) 编辑
摘要: 概述 Redis 提供了2种不同的持久化方式,分别为RDB和AOF RDB能够定时地对数据进行快照存储,因为是定时的,所以服务宕机时存在丢失数据的风险AOF能够记录每一次的写操作,当服务重启的时候会重新执行这些命令来恢复数据,恢复完整度高,但是比较耗时Redis服务启动时,根据配置的持久化方式来决定 阅读全文
posted @ 2020-09-15 21:51 风停了,雨来了 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 安装 cd /opt/software #下载5.0.8版本 wget http://download.redis.io/releases/redis-5.0.8.tar.gz #解压到/usr/local tar -zxvf redis-5.0.8.tar.gz -C /usr/local/ cd 阅读全文
posted @ 2020-09-15 17:24 风停了,雨来了 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 概述 组件是一个可复用的vue实例组件通过Vue.component(组件名称, 配置)进行注册组件的data必须是返回json对象的函数,这样组件复用时每个对象都有各自的属性实例通过template定义组件的组成内容 简单Demo: <body> <div id="components-demo" 阅读全文
posted @ 2020-09-15 15:53 风停了,雨来了 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 环境 kafka 2.6.0(安装步骤查看这里) 引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 阅读全文
posted @ 2020-09-15 11:40 风停了,雨来了 阅读(1411) 评论(0) 推荐(0) 编辑