Document
摘要: docker文档 参考docker安装文档 安装docker 1.卸载老版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-l 阅读全文
posted @ 2021-04-22 23:43 马宝云 阅读(311) 评论(0) 推荐(0) 编辑
摘要: docker认识 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到 阅读全文
posted @ 2021-04-21 16:45 马宝云 阅读(206) 评论(0) 推荐(0) 编辑
摘要: Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系Redis中可以使用SETNX命令实现分布式锁。 将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则 SETNX 不做任何动作。 SETNX key 阅读全文
posted @ 2021-03-05 17:01 马宝云 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 在一个应用程序中,我们需要多次使用线程,也就意味着,我们需要多次创建并销毁线程。而创建并销毁线程的过程势必会消耗内存。而在Java中,内存资源是及其宝贵的,所以,我们就提出了线程池的概念。 线程池:Java中开辟出了一种管理线程的概念,这个概念叫做线程池,从概念以及应用场景中,我们可以看出,线程池的 阅读全文
posted @ 2020-09-08 21:41 马宝云 阅读(472) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch CountDownLatch闭锁是在java1.5被引入,存在于java.util.cucurrent包下。 CountDownLatch是一个同步辅助类,让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒。CountDownLatch是通过一个计数器来实现的,计数器 阅读全文
posted @ 2020-07-23 23:27 马宝云 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 公平和非公平锁 公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队,先来后到。 非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁在高并发的情况下,有可能会造成优先级反转或者饥饿现象。 两者区别: 并发包中ReentrantLock的创建可以指定 阅读全文
posted @ 2020-07-20 23:25 马宝云 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 在并发环境下,我们经常使用的集合类(List、Map、Set)其实都是不安全的。 集合不安全问题之List List在单线程的情况下是安全的,但是多线程的情况下是不安全的,我们来看两段代码: 单线程 public class UnsafeList1 { public static void main 阅读全文
posted @ 2020-06-17 23:19 马宝云 阅读(331) 评论(2) 推荐(0) 编辑
摘要: ABA问题的产生 CAS会导致“ABA问题”。 CAS算法实现一个重要前提需要取出内存中某时刻的数据并在当下时刻比较并替换,那么在这个时间差类会导致数据的变化。 比如说一个线程1从内存位置V中取出A,这时候另一个线程2也从内存中取出A,并且线程2进行了一些操作将值变成了B,然后线程2又将V位置的数据 阅读全文
posted @ 2020-06-17 23:17 马宝云 阅读(787) 评论(0) 推荐(0) 编辑
摘要: 讲解线路: CAS-->UnSafe-->CAS底层思想-->ABA-->原子引用更新-->如何规避ABA问题 CAS是什么 CAS的全称为Compare-And-Swap,即比较并交换,它是一条CPU并发原语。它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。 C 阅读全文
posted @ 2020-06-17 23:16 马宝云 阅读(312) 评论(0) 推荐(0) 编辑
摘要: JUC简介 利用多线程提高效率,尽可能的利用cpu资源。java5以前多线程同步用了sychronized、volatile。在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类,用于定义类似于线程的自定义子系统,包括线程池 阅读全文
posted @ 2020-06-17 23:15 马宝云 阅读(225) 评论(0) 推荐(0) 编辑