首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
多线程
夏季的野兽
创建于2021-08-01
订阅专栏
关于多线程学习
等 2 人订阅
共16篇文章
创建于2021-08-01
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
synchronized和ReentrantLock的区别
Java中常用的两个锁synchronized和ReentrantLock,那么它们在原理和使用上有什么区别呢? 二者的区别
工厂方法设计模式
这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战 工厂方法设计模式 介绍 定义:工厂方法(Factory Method)模式的意义是定义一个创建产品工厂接口,将实际创建工作推迟到子类当中。
线程通信之生产者消费者
生产者消费者问题 生产者消费者问题是线程通信的经典问题,两个角色生产者消费者,他们共用一块资源空间,当空间空的时候消费者阻塞,当空间满的时
阻塞队列
介绍 阻塞队列可以简单的理解为定义一个一定容量的信箱,如果信箱中满了再往信箱中放信会阻塞,如果信箱中为空那么往信箱中拿信会阻塞 阻塞队列
CyclicBarrier&Semaphore
CyclicBarrier juc包下的CyclicBarrier类使用于例如人到齐了才能开会这种场景,它可以实现让一组线程相互等待
多线程并发之CountDownLatch
这是我参与8月更文挑战的第18天,活动详情查看:8月更文挑战 场景 这边模拟一个场景教室里面有6个同学+1个值日生,值日生需要等到教室里所有其他同学都离开之后完成关门的任务。然后根据需求模拟出下面的代
【锁】——读写锁
只要读读可以共存(允许多个线程同时读),其他情况都会有线程安全问题。 如果有一个线程想去写共享资源,就不应该在有其他线程可以对该资源
自旋锁
这是我参与8月更文挑战的第15天,活动详情查看:8月更文挑战 学习学习!!! 介绍 一种有名的无锁算法,不使用锁的情况下实现多线程间变量的同步 尝试获取锁的线程不会立即阻塞,而是反复尝试的去获得锁
可重入锁&不可重入锁
这是我参与8月更文挑战的第11天,活动详情查看:8月更文挑战 什么是可重入锁? 同一个线程可以重入上锁的代码段,不同的线程则需要进行阻塞 Java的可重入锁有:ReentrantLock(显式的可重入
ArrayList线程不安全&写时复制
ArrayList是常用的一个集合类,底层基于数组实现,但是它在并发环境下线程不安全,以下是简单的一些分析。
CAS之ABA问题的解决方法
java.util.concurrent.atomic包下的AtomicInteger类可以对整数进行包装,AtomicStampedReferenc加入了版本号属性解决了ABA问题
CAS的缺点
CAS保证并发性,但是需要多次比较 循环时间长,开销大,只能保证一个共享变量的原子操作,还会出现ABA问题
CAS底层原理
这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战 源码分析 CAS的底层原理是基于自旋操作和Unsafe类的 先来看下getAndIncrement方法的源码。
什么是CAS?
CAS(Compare And Swap/Set)比较并交换, CAS 算法的过程是这样:它包含 3 个参数CAS(V,A,B)。
volatile在单例模式中的使用&双端检锁| 8月更文挑战
单例模式 单例模式常见的写法有懒汉模式,饿汉模式,双重检查模式等。 懒汉模式就是用的时候再去创建对象。 饿汉模式就是提前就已经加载好的静态static对象。 双重检查模式就是在加锁前和加锁后共两次检查
volatile之防止指令重排| 8月更文挑战
volatile可以防止指令重排,在多线程环境下有时候我们需要使用volatile来防止指令重排,来保证代码运行后数据的准确性 什么是指令重排? 计算机在执行程序时,为了提高性能,编译器和处理器一般会