并发编程
Bruin_W
只想把自己遇到的问题发出来记录,并希望能帮到大家-.-
展开
-
volatile可见性禁重排原理以及不保证原子性解决方案,volatile下的双端检锁机制单例模式的原理
先说说并发和并行的区别1.并发是多个线程同时访问2.并行是多个方面一起正在做volatile是Java虚拟机提供的轻量级同步机制三大特性:保证可见性,不保证原子性,禁止指令重排JMM(java内存模型)高并发系统还是单机版系统(高并发伴随很多问题,不得不研究底层JMM)JMM第一大特性之内存可见性变量值一旦被某个线程优先修改改变 其他线程立刻可见对象在堆里面,整个虚拟机在内存里面JMM三大特性可见性举例package com.wsx;import java.util.con原创 2020-05-20 00:28:14 · 306 阅读 · 0 评论 -
常用的阻塞队列用法以及原理
理论:火锅店欢迎阻塞去银行排队不得不阻塞阻塞队列做蛋糕,有没有货,和柜子满不满为什么用架构继承关系collection—>queue->七个阻塞队列接口三个红色是重点一个粉色需注意接近无界(21亿)synchronousQueue是生产一个,没消费不会再生产,故为不储存(贝克汉姆球鞋)最后一个注意拼写(deque)阻塞队列知道吗所有用法API异常用法element()是检查队头元素是谁import java.util.concurrent.Arr原创 2020-05-17 11:12:37 · 827 阅读 · 0 评论 -
List在高并发场景下保证线程安全的三种方案,CopyOnWriteArrayList写时复制读写分离
Java并发修改异常:java.util.ConcurrentModificationExpectionvector线程安全但是是JDK1.0诞生arrayList线程不安全但是是JDK 1.2诞生Collection是一个接口Collections是一个辅助工具类目前两种解决方案:new vector<>();collctions.synchronizedList(new ArrayList<>());还有改错思路思想//list线程不安全问题,已经举一个不安全的原创 2020-05-17 00:22:17 · 1469 阅读 · 1 评论