
多线程与高并发
文章平均质量分 95
蟑螂恶霸qaq
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ReadWirteLock读写锁源码分析
首先看构造方法然后看获取读锁和获取写锁方法以上表示内部有2把锁,一把读锁一把写锁,这两把锁都有一个变量为sync同步器(也就是aqs),在reentranReadWirteLock构造方法里初始化了读锁和写锁,并在初始化读写锁方法里将读写锁的同步器设置为reentranReadWirteLock的同步器。所以实际上虽然有2把锁,但用的是同一个aqs。。。未完待续...原创 2020-07-22 17:49:55 · 261 阅读 · 0 评论 -
多个线程做排序,返回最早排序好的线程的结果
多个线程做排序,返回最早排序好的线程的结果最近面天猫,面试官出了一道这样的题:假设有一个排序方法,里面起了5个线程、分别用一个排序算法做排序操作,这个方法返回5个线程中最快排好序的结果。一下子把我问懵了,我知道主线程等待多个线程执行完毕再执行可以用join,但主线程等待任意一个线程执行完毕就执行,我没想过这个问题。不过我倒是知道这个问题肯定是问的juc下的那些新的同步锁,只是一下子脑子突然懵了有点想不起来。最终只想到一个countDownLatch,遗憾了(虽然就算答出来应该也过不了面试~)。实原创 2020-07-14 16:00:50 · 516 阅读 · 0 评论 -
ThreadLocal全解析以及Java的强软弱虚引用
ThreadLocal全解析最近在面试一家还算二三线的略知名厂时,被问到了ThreadLocal,虽然大致的使用方式是回答出来了,但面试官问到使用ThreadLocal需要注意什么,以及它为什么会导致内存泄漏的问题时,就一脸懵逼了。所以写篇文章记录一下。ThreadLocal本身并不复杂,但面试一旦被问到,拖个5-10分钟还是没问题的,感觉也算是一个有“性价比”的知识点。Java的四种引用(强软弱虚)首先需要一点前置知识,Java中实际上有4种引用。强引用在之前的学习中了解到gc会收集那些没原创 2020-07-11 00:48:12 · 551 阅读 · 0 评论 -
多线程之 线程池总结
JDK提供2种线程池,ThreadPoolExecutor、ForkJoinPool这里先写ThreadPoolExecutor 有时间再写ForkJoinPoolThreadPoolExecutorJDK提供4种默认的线程池,实际上他们的底层都是ThreadPoolExecutor,通过传入构造方法的7个参数实现不同的功能Executors.newSingleThreadExecutor(); // 单个线程的线程池Executors.newCachedThreadPool(); // 0个核心原创 2020-06-20 19:26:20 · 237 阅读 · 0 评论 -
多线程之 blockingQueue
https://blog.youkuaiyun.com/qq_42135428/article/details/80285737原创 2019-12-24 17:11:52 · 177 阅读 · 2 评论 -
多线程之 线程池
涉及的一些基本的类参考 https://juejin.im/post/5c8896be5188257ec828072f原创 2019-11-26 23:30:09 · 97 阅读 · 0 评论 -
多线程之 CAS/AQS原理及源码分析
CAS,即CompareAndSet(expect,update)方法,常用于原子类或一些同步锁中。意思为先比较再修改,如CAS(0,1)即期待值为0,更新值为1,只有当当前值等于期待值时,才将变量修改成更新值。CAS是乐观锁(自旋锁也是乐观锁,而sync是悲观锁)乐观锁和悲观锁的概念原子类的源码:原子自增的方法进入源码发现是调用了CAS方法AQS...原创 2019-11-21 10:46:09 · 405 阅读 · 0 评论 -
多线程之 指令重排序/乱序的证明
在不影响单线程执行结果的情况下,JVM可能会对指令进行乱序处理,以此提高性能,如 a=0;b=0,可能cpu会先执行b=0证明:public class TestDisOrder { int a,b,x,y = 0; public static void main(String[] args) { for(int i=0;;i++){ T...原创 2019-11-21 09:51:15 · 418 阅读 · 0 评论 -
多线程之 生产者消费者问题
生产者消费者问题原创 2019-11-20 00:08:15 · 210 阅读 · 0 评论 -
多线程之 JUC下的一些同步锁
原创 2019-11-20 00:07:10 · 220 阅读 · 0 评论 -
多线程之 synchronized详解
上锁的概念脏读的概念sync的可重入概念sync的具体实现JDK早期:重量级锁,OS层面,效率很低后来改进:锁升级,效率变高偏向锁-》自旋锁-》重量级锁sync注意事项sync的优化volatile保证线程可见性;禁止指令重排序...原创 2019-11-20 00:05:05 · 145 阅读 · 0 评论 -
多线程之 线程基础
启动线程的几种方式线程常用方法线程的状态原创 2019-11-20 00:00:16 · 91 阅读 · 0 评论 -
单例模式中的线程安全问题及volatile的禁止指令重排序作用
参考https://blog.youkuaiyun.com/chenchaofuck1/article/details/51702129https://blog.youkuaiyun.com/weixin_37817685/article/details/80261549一般的实现懒汉单例是线程不安全的,但如果在getInstance上加sync的话,锁的粒度太大(只有在new Instance时才需要加...原创 2019-11-12 21:12:44 · 475 阅读 · 0 评论