摘要:
1.重入锁和synchronized比较 特征 synchronized reentrantLock 底层原理 JVM实现 JDK实现 性能区别 低->高(JDK5+) 高 锁的释放 自动释放(编译器保证) 手动释放(finally保证) 编码程度 简单 复杂 锁的粒度 读写不区分 读锁、写锁 高级 阅读全文
posted @ 2022-10-12 20:20
求道之愚者
阅读(27)
评论(0)
推荐(0)
摘要:
1.应用场景 CyclicBarrier应用于多个线程必须同时开始 2.代码 private static CyclicBarrier cyclicBarrier = new CyclicBarrier(5); public static void main(String[] args) { Exe 阅读全文
posted @ 2022-10-12 17:49
求道之愚者
阅读(19)
评论(0)
推荐(0)
摘要:
1.应用场景 对于多个线程来说,想要设计争抢有限的资源,可以用信号量来解决 2.代码 public static void main(String[] args) { ExecutorService executorService = Executors.newCachedThreadPool(); 阅读全文
posted @ 2022-10-12 17:39
求道之愚者
阅读(13)
评论(0)
推荐(0)
摘要:
原理 适合总分任务,这个锁主要适用情景,要求某些操作全部执行完成才能继续执行后面操作,这时候就可以适用cdl来计数,每次执行完一个操作就减一,计数为0后表示全部线程执行完毕。 注意 cdl限定了总数,一般来说,如果要让全部操作执行完,总数和操作数相等即可;如果总数大于操作数,操作将会永远消耗不完而卡 阅读全文
posted @ 2022-10-12 13:29
求道之愚者
阅读(51)
评论(0)
推荐(0)
摘要:
1.可创建线程池种类 在java.util.concurrent中提供了工具类Executors(调度器)对象来创建线程池,有四种 CachedThreadPool - 可缓存线程池 无限大、无线程创建线程,有空闲线程利用起来 FixedThreadPool - 定长线程池 固定线程总数,空闲线程用 阅读全文
posted @ 2022-10-12 12:21
求道之愚者
阅读(32)
评论(0)
推荐(0)
摘要:
Integer和int的区别: 1.Integer默认值是null,int是0;int只需要定义类型直接赋值,而Integer需要创建对象 2.Integer值存储在堆内存里面,int是存储在栈空间里面 3.Integer作为对象类型,封装了一些方法属性,我们可以利用方法属性操作对象 为什么要设计成 阅读全文
posted @ 2022-10-12 12:19
求道之愚者
阅读(108)
评论(0)
推荐(0)
摘要:
阅读全文
posted @ 2022-10-12 12:19
求道之愚者
阅读(21)
评论(0)
推荐(0)