摘要: 什么是CAS CAS(compareAndSwap),中文名称比较和替换,是一种无锁原子算法。 CAS过程 它包含3个参数CAS(V、E、N) V 代表要更新变量的值 E 代表预期值 N 代表新值 仅当V值等于E值时,才会将V的值设为N; 如果V值和E值不同,则说明已经有其他线程做了更新,则当前线程 阅读全文
posted @ 2020-05-02 11:28 wilsonsui 阅读(251) 评论(0) 推荐(0)
摘要: 单例模式 多个线程称操作不同实例对象。多个线程要操作同一个对象,要保证对象的唯一性。 实例过程中只实例化一次。 饿汉式 ==说明== 因为static关键字,在类加载的时候已经被实例化,所有只有一个实例,是线程安全的。 ==缺点== 没有延迟加载 长时间不使用,占用空间 懒汉式 ==说明== if判 阅读全文
posted @ 2020-04-29 20:26 wilsonsui 阅读(130) 评论(0) 推荐(0)
摘要: volatile 1、volatile 保证多线程数据的可见性 2、机器硬件CPU与JMM (1) CPU 缓存模型 程序的局部执行原理 (2) CPU缓存一致性问题 每个CPU修改内存数据的步骤 1、从内存中把数据读到cache中,并放到寄存器中进行操作 2、在cache中更新数据 3、把更新的结 阅读全文
posted @ 2020-04-27 22:23 wilsonsui 阅读(109) 评论(0) 推荐(0)
摘要: 1、概念 synchronized是利用锁的机制来实现同步的。 锁机制的两个特性: 互斥性(原子性) 即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操作)进行访问。 可见性 必须确保在锁被释放之前,对共享变量所做的修改 阅读全文
posted @ 2020-04-23 18:47 wilsonsui 阅读(103) 评论(0) 推荐(0)
摘要: 1、基本概念 程序:代码,完成某一任务,代码序列(静态的概念) 进程:程序在某些数据上的一次运行(动态概念) 线程:一个进程可能包含一个或多个线程(占有资源的独立单元) 2、JVM与线程 JVM虚拟机在类被调用的时候启动 先启动JVM线程 其他线程(main线程) 3、JVM内存区域 方法区 主要存 阅读全文
posted @ 2020-04-21 19:50 wilsonsui 阅读(142) 评论(0) 推荐(0)
摘要: 问题 win10下使用docker启动zookeeper 之前正常 某一天开机发现zookeeper启动失败 这个问题可以通过修改zookeeper的默认端口号解决,如果不想修改端口号可通过下面的方式解决。 使用 netstat ano|findstr "2181" 未找到进程 通过google搜索 阅读全文
posted @ 2020-04-17 12:24 wilsonsui 阅读(2464) 评论(0) 推荐(0)