随笔分类 -  JUC并发编程

摘要:高并发 优化案例:高并发减库存 @RestController public class TestController { @Autowired private RedisTemplate redisTemplate; @Autowired private RedissonClient rediss 阅读全文
posted @ 2022-02-24 15:41 jpy 阅读(23) 评论(0) 推荐(0) 编辑
摘要:阻塞队列 四组API 方式 抛出异常 有返回值 阻塞 等待 超时等待 添加 add offer put offer(元素,等待时间,等待时间单位) 移除 remove poll take poll(元素,等待时间,等待时间单位) 过去队列首 element peek public class Tes 阅读全文
posted @ 2021-12-13 17:27 jpy 阅读(1) 评论(0) 推荐(0) 编辑
摘要:线程池 池化技术 程序的运行,本质:占用系统的资源,优化资源的使用 线程池,连接池,内存池,对象池,常量池 线程池好处: 降低资源消耗 提高响应速度 方便管理 线程复用,可以控制最大并发数,管理线程 线程池:三大方法 在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自 阅读全文
posted @ 2021-12-13 17:25 jpy 阅读(4) 评论(0) 推荐(0) 编辑
摘要:各种锁 1、公平锁,非公平锁 公平锁:非常公平,不能插队 非公平锁:非常不公平,可以插队(默认都是非公平) //非公平锁 ReentrantLock reentrantLock = new ReentrantLock(); public ReentrantLock(boolean fair) { s 阅读全文
posted @ 2021-12-08 13:06 jpy 阅读(2) 评论(0) 推荐(0) 编辑
摘要:深入理解CAS 什么是CAS public class Demo01 { //CAS compareAndSet:比较并交换 public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicIntege 阅读全文
posted @ 2021-12-08 13:04 jpy 阅读(6) 评论(0) 推荐(0) 编辑
摘要:单例模式 饿汉式 /* * 饿汉式单例 * 如果这个实例从未被使用,会造成内存浪费 * */ public class HungryMan { private final static HungryMan hungryMan = new HungryMan(); private HungryMan( 阅读全文
posted @ 2021-12-08 11:51 jpy 阅读(3) 评论(0) 推荐(0) 编辑
摘要:JMM 对Volattile的理解 Volatile是java虚拟机提供的轻量级的同步机制 保证可见性 不保证原子性 禁止指令重排 可见性怎么保证,JMM JMM java内存模型,不存在的东西,概念 关于JMm的一些同步的约定 线程解锁前,必须把共享变量立刻刷回到主存 线程加锁前,必须读取主存中的 阅读全文
posted @ 2021-12-08 11:44 jpy 阅读(20) 评论(0) 推荐(0) 编辑
摘要:Future异步回调 Future设计的初衷,对将来的某个时间的结果进行建模 /* 异步调用 CompletableFuture 异步执行,成功回调,失败回调 *输出结果: 111111111 ForkJoinPool.commonPool-worker-1runAsync void * */ pu 阅读全文
posted @ 2021-12-08 11:39 jpy 阅读(38) 评论(0) 推荐(0) 编辑
摘要:ForkJoin ForkJoin在jdk1.7,并行执行任务!提高效率,大数据量! 大数据:Map Reduce(把大任务拆分成小任务) ForkJoin特点:工作窃取(如下图) ForkJoin操作 如何使用。累加求和 forkJoinPool来执行 计算任务forkJoinPool.execu 阅读全文
posted @ 2021-12-08 11:33 jpy 阅读(2) 评论(0) 推荐(0) 编辑
摘要:Stream流 /* 题目要求:筛选出 1.Id必须是偶数 2.年龄>23 3.用户名转大写 4.用户名字母倒序 5.只输入一个用户 * * * */ public class Test { public static void main(String[] args) { User u1 = new 阅读全文
posted @ 2021-12-08 11:30 jpy 阅读(5) 评论(0) 推荐(0) 编辑
摘要:四大函数式接口 新时代程序员:lambda表达式,链式编程,函数式接口,stream流式计算 函数式接口:只有一个抽象方法的接口,而@FunctionalInterface注解不是必须的 Function Function 函数型接口,一个入参,一个出参 /* * Function 函数型接口,一个 阅读全文
posted @ 2021-12-08 11:29 jpy 阅读(51) 评论(0) 推荐(0) 编辑
摘要:ReadWriterLock 读锁,共享锁, 写锁,独占锁,排他锁 public class Test { public static void main(String[] args) { MyCache myCache = new MyCache(); for (int i = 1; i <= 5 阅读全文
posted @ 2021-12-02 15:06 jpy 阅读(8) 评论(0) 推荐(0) 编辑
摘要:Callable 有返回值 可以抛出异常 方法不同:call public class CallableTest { public static void main(String[] args) throws ExecutionException, InterruptedException { /* 阅读全文
posted @ 2021-04-26 16:42 jpy 阅读(2) 评论(0) 推荐(0) 编辑
摘要:List public class ListTest { public static void main(String[] args) { /* * 解决方案: * 1.用Vector * 2.List<String> list=Collections.synchronizedList(new Ar 阅读全文
posted @ 2021-04-26 09:09 jpy 阅读(7) 评论(0) 推荐(0) 编辑
摘要:1、锁现象 什么是锁!如何判断锁的是谁! 1.1、都是synchronized方法 /* * 结果:发短信 打电话 * */ public class Test1 { public static void main(String[] args) { Phone1 phone = new Phone1 阅读全文
posted @ 2021-04-25 13:17 jpy 阅读(4) 评论(0) 推荐(0) 编辑
摘要:1、Lock锁 传统synchronized锁 开发中多线程实现 /* 资源类oop * */ class Ticket { private int num = 100; //synchronized 本质:队列 锁 public synchronized void sale() { if (num 阅读全文
posted @ 2021-04-25 13:16 jpy 阅读(5) 评论(0) 推荐(0) 编辑
摘要:1、概述 java uitl concurrent包下 相关包: java.util.concurrent java.util.concurrent.atomic java.util.concurrent.locks Condition Lock ReentrantLock 可重入锁(常用) Ree 阅读全文
posted @ 2021-04-25 13:15 jpy 阅读(1) 评论(0) 推荐(0) 编辑