java并发编程
多线程之Future源码解读
Future组件展现异步计算的结果。Future提供了一些方法来判断计算是否完成、等待计算完成和返回计算的结果。当计算完成时,计算的结果只能通过get方法返回,必要的时候可以进行阻塞直到准备就绪。可以 【阅读更多...】
图解java中的可重入锁ReentrantLock
说起ReentrantLock,大家都不陌生,网上的解释也都很官方,不太好理解。本文用图文方式来跟大家探讨一下这个神奇的东东 一、定义 可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,再进 【阅读更多...】
java限流策略
在大数据量高并发访问时,经常会出现服务或接口面对暴涨的请求而不可用的情况,甚至引发连锁反映导致整个系统崩溃。此时你需要使用的技术手段之一就是限流,当请求达到一定的并发数或速率,就进行等待、排队、降级、 【阅读更多...】
线程池之ThreadPoolExecutor使用
ThreadPoolExecutor提供了四个构造方法: public ThreadPoolExecutor(int corePoolSize, 【阅读更多...】
Semaphore的工作原理及实例
Semaphore是一种在多线程环境下使用的设施,该设施负责协调各个线程,以保证它们能够正确、合理的使用公共资源的设施,也是操作系统中用于控制进程同步互斥的量。Semaphore是一种计数信号量,用于 【阅读更多...】
CyclicBarrier的工作原理
CyclicBarrier是多线程中一个重要的类,主要用于线程组内部之间的线程的相互等待问题。 1、CyclicBarrier的工作原理 CyclicBarrier大致是可循环利用的屏障,顾名思义,这 【阅读更多...】
CountDownLatch的工作原理以及实例
CountDownLatch、CyclicBarrier是多线程重要的类,本文主要进行对其主要原理的讲解,并且通过举例的形式,使得原理更加清晰,更易了解。 1、CountDownLatch工作原理 C 【阅读更多...】
java并发与高并发学习附加2:乐观锁与悲观锁
一、什么是悲观锁与乐观锁? 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。 悲 【阅读更多...】
java并发与高并发学习附加1:ThreadLocal
一、ThreadLocal是什么? 顾名思义,ThreadLocal不是一个线程而是一个线程的本地化对象。当工作于多线程环境中的对象采用ThreadLocal维护变量时,ThreadLocal为每个使 【阅读更多...】
java并发与高并发学习系列3:安全发布对象
一、发布对象与对象溢出 发布对象:使一个对象能够被当前范围之外的代码所使用,例如通过方法返回对象的引用,或者通过公有的静态变量发布对象 对象溢出:一种错误的发布,即发布了本不该发布的对象。当一个对象还 【阅读更多...】