首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
线程
订阅
堂吉诃德不唱歌
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
【漫画】CAS原理分析!无锁原子类也能解决并发问题!
首先我们再回顾一下原子性问题的原因,参考【漫画】JAVA并发编程 如何解决原子性问题。 两个线程同时把count=0加载到自己的工作内存,线程B先执行count++操作,此时主内存已经变化成了1,但是线程A依旧以为count=0,这是导致问题的根源。 所以解决方案就是:不能让线…
Java面试必问-死锁终极篇
这个话题是源自笔者以前跟人的一次技术讨论,“你是怎么发现死锁的并且是如何预防、如何解决的?”以前听到的这个问题的时候,虽然脑海里也有一些思路,但是都是不够系统化的东西。直到最近亲身经历一次死锁,才做了这么一次集中的思路整理,撰录以下文字。希望对同样问题的同学有所帮助。 首先我们…
并发的核心:CAS 是什么?Java8是如何优化 CAS 的?
大家可能都听说说 Java 中的并发包,如果想要读懂 Java 中的并发包,其核心就是要先读懂 CAS 机制,因为 CAS 可以说是并发包的底层实现原理。 今天就带大家读懂 CAS 是如何保证操作的原子性的,以及 Java8 对 CAS 进行了哪些优化。 学会多线程的同学应该都…
深入理解AbstractQueuedSynchronizer(AQS)
1. AQS简介 在上一篇文章中我们对lock和AbstractQueuedSynchronizer(AQS)有了初步的认识。在同步组件的实现中,AQS是核心部分,同步组件的实现者通过使用AQS提供的模板方法实现同步组件语义,AQS则实现了对同步状态的管理,以及对阻塞线程进行排…
大白话聊聊Java并发面试问题之Java 8如何优化CAS性能?【石杉的架构笔记】
上篇文章给大家聊了一下volatile的原理,具体参见:大白话聊聊Java并发面试问题之volatile到底是什么?。 这篇文章给大家聊一下java并发包下的CAS相关的原子操作,以及Java 8如何改进和优化CAS操作的性能。 因为Atomic系列的原子类,无论在并发编程、J…
大白话聊聊Java并发面试问题之谈谈你对AQS的理解?【石杉的架构笔记】
上一篇文章聊了一下java并发中常用的原子类的原理和Java 8的优化,具体请参见文章:大白话聊聊Java并发面试问题之Java 8如何优化CAS性能?。 之前有同学反馈,去互联网公司面试,面试官聊到并发时就问到了这个问题。当时那位同学内心估计受到了一万点伤害。。。 因为首先,…
啃碎并发(七):深入分析Synchronized原理
记得开始学习Java的时候,一遇到多线程情况就使用synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着学习的进行我们知道在JDK1.5之前synch…
《蹲坑也能进大厂》多线程系列 - 悲观锁、乐观锁、可重入/不可重入锁 详解
什么是悲观锁、乐观锁、可重入锁,令人头大的各种锁概念,以及CAS又是什么,这些概念,一文带你读懂,面试不用怕
面试:为了进阿里,又把并发CAS(Compare and Swap)实现重新精读一遍
1. 什么是乐观锁与悲观锁? 总是假设最坏的情况,每次读取数据的时候都默认其他线程会更改数据,因此需要进行加锁操作,当其他线程想要访问数据时,都需要阻塞挂起。悲观锁的实现: Java里面的同步synchronized关键字的实现。 乐观锁,其实就是一种思想,总是认为不会产生并发…
别再说你不懂线程池——做个优雅的攻城狮
线程池,顾名思义就是装线程的池子。其用途是为了帮我们重复管理线程,避免创建大量的线程增加开销,提高响应速度。 作为一个严谨的攻城狮,不会希望别人看到我们的代码就开始吐槽,new Thread().start()会让代码看起来混乱臃肿,并且不好管理和维护,那么我们就需要用到了线程…