Wang
Clay
Java并发编程 Clay
    欢迎来到唐僧洗头艹飘柔的博客!

控制并发流程

控制并发流程
什么是控制并发流程? 控制并发流程的工具类,作用就是帮助我们程序员更容易得让线程之间合作 让线程之间相互配合,来满足业务逻辑 比如让线程A等待线程B执行完毕后再执行等合作策略 有哪些控制并发流程的工具类? CountDownLatch 迸发流程控制的工具 倒数门闩 流程: 倒数结束之前,一直处于等待状态,直到倒计时结束,此线程才继续工作 类的……继续阅读 »

odliken 7个月前 (04-26) 70浏览 0评论 0个赞

ConcurrentHashMap等并集合

ConcurrentHashMap等并集合
并发容器概览 ConcurrentHashMap:线程安全的HashMap CopyOnWriteArrayList:线程安全的List BlockingQueue:这是一个接口,表示阻塞队列,非常适合用于作为数据共享的通道 ConcurrentLinkedQueue:高效的非阻塞并发队列,使用链表实现。可以看做一个线程安全的LinkedList Conc……继续阅读 »

odliken 7个月前 (04-26) 159浏览 0评论 1个赞

CAS原理

CAS原理
什么是CAS CPU的特殊指令,由CPU保证操作的原子性 我认为V的值应该是A,如果是的话那那我就把它改成B,如果不是A (说明被别人修改过了),那我就不修改了,避免多人同时修改导致出错 CAS有三个操作数:内存值V、预期值A、要修改的值B,当目仅当预期值A和内存值V相同时,才将内存值修改为B,否则什么都不做。最后返回现在的V值 i CAS等价代码 ……继续阅读 »

odliken 7个月前 (04-25) 71浏览 0评论 0个赞

原子类

原子类
原子类简介 不可分割 一个操作是不可中断的, 即便是多线程的情况下也可以保证 java.util.concurrent.atomic 原子类的作用和锁类似, 是为了保证并发情况下线程安全。不过原子类相比锁,有一定的优势 颗粒度更细:原子变量可以把竞争范围缩小到变量级别,这是我们可以获得最细颗粒度的情况了,通常锁的颗粒度要大于原子变量的粒度 效率更高:通常,……继续阅读 »

odliken 7个月前 (04-25) 65浏览 0评论 0个赞

Lock

Lock
Lock接口 Lock简介 地位 作用 锁是一种工具,用于控制对共享资源的访问 Lock和synchronized,这两个是最常见的锁,它们都可以达到线程安全的目的,但是在使用上和功能上又有较大的不同。 Lock并不是用来代替synchronized的,而是当使用synchronized不合适或不足以满足要求的时候,来提供高级功能的。 Lock接口最常见的……继续阅读 »

odliken 7个月前 (04-24) 85浏览 0评论 0个赞

ThreadLocal

ThreadLocal
使用场景 场景1:每个线程需要一个独享的对象(通常是工具类,典型需要使用的类有SimpleDateFormat和Random 场景2:每个线程内需要保存全局变量(例如在拦截器中获取用户信息),可以让不同方法直接使用,避免参数传递的麻烦 Spring Security获取到Authentication用户信息时也采用到ThreadLocal实现 在Secu……继续阅读 »

odliken 7个月前 (04-23) 84浏览 0评论 0个赞

Java线程池

Java线程池
1.线程池简介 线程池的重要性:不言而喻 如果不使用线程池 每个任务都需要开一个线程处理 一个线程 for循环创建线程 当任务数量上升到1000 缺点: 这样开销太大,我们希望有固定数量的线程,来执行这1000个线程,这样就避免了反复创建并销毁线程所带来的开销问题。创建个销毁会有很大的代价,需要jvm辅助很多工作 为什么要使用线程池 问题一:……继续阅读 »

odliken 7个月前 (04-23) 66浏览 0评论 1个赞