JUC
人间无味98727
这个作者很懒,什么都没留下…
展开
-
JUC--异步调用
原创 2022-05-05 16:38:30 · 149 阅读 · 0 评论 -
JUC--线程池
1、线程池简介2、架构3、线程池使用的方式这三种创建方式都不推荐使用一池N线程特点:4、线程池参数5、线程池底层工作流程6、开发规范7、自定义创建线程池:...原创 2022-05-05 15:27:37 · 125 阅读 · 0 评论 -
解决ArrayList线程不安全方案
1、现象2、3、CopyOnWriteArrayList原理解读:原创 2022-05-01 22:21:07 · 506 阅读 · 0 评论 -
Set和Map--线程不安全
1、线程不安全写法public class ContainerNotSafeDemo { public static void main(String[] args){ Set<String> set = new HashSet<>();//线程不安全,报java.util.ConcurrentModificationException for (int i=1;i<30;i++){ new Thread(原创 2022-05-02 16:40:08 · 998 阅读 · 0 评论 -
线程安全之volatitle
1、三大特性:保证可见性、不保证原子性、禁止指令重排2、JMM(java内存模型)3、 volatile可见性--即JMM的可见性没加volatile关键字运行结果:main线程一直在while里面等待,没有被告知number已经被改成了60添加volatile关键字的运行结果:main可以感知了number已经在AAA线程被修改成了604、验证volatile不保证原子性最终结果小于了20000,说明volatile不...原创 2022-05-01 23:07:45 · 496 阅读 · 0 评论 -
单列模式--DCL+volalitle
1、单机版下的单列模式public class SingletonDemo { private static SingletonDemo singletonDemo; private SingletonDemo(){ } public static SingletonDemo getInstance(){ if (singletonDemo==null){ singletonDemo = new SingletonDemo()原创 2022-05-02 10:27:54 · 318 阅读 · 0 评论 -
Lock与synchronized的使用
多线程编程口诀:线程 操作 资源类判断 干活 通知防止虚假唤醒二者区别:Lock的使用--传统版使用原创 2022-05-02 21:22:22 · 282 阅读 · 0 评论 -
解决Thread等待中虚假唤醒问题
官方文档,需要放在while里面,能解决虚假唤醒问题原创 2022-05-03 09:40:58 · 133 阅读 · 0 评论 -
线程锁分类
ReentrantLock lock = new ReentrantLock(false);//非公平锁:线程锁死,效率高 ReentrantLock lock1 = new ReentrantLock(true);//公平锁:阳光普照,效率相对低原创 2022-05-03 11:09:14 · 718 阅读 · 0 评论 -
线程的创建
1、创建线程的方式1)继承Thread类2)实现Runnable接口4)线程池方式3)Callable接口原创 2022-05-03 22:19:31 · 302 阅读 · 0 评论 -
JUC--悲观锁和乐观锁,读写锁
1、悲观锁不支持并发,乐观锁支持并发使用版本号原创 2022-05-05 10:33:46 · 154 阅读 · 0 评论 -
JUC--阻塞队列
1、阻塞队列概述2、阻塞队列的分类常用ArrayBlockingQueue、LinkedBlockingDeque原创 2022-05-05 11:11:00 · 114 阅读 · 0 评论