首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
面时莫慌 | Java并发编程
青Cheng序员石头
创建于2021-06-19
订阅专栏
并发编程是一门艺术,面试少不了它。
等 64 人订阅
共20篇文章
创建于2021-06-19
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
面时莫慌 | Reetrant[ReadWrite]Lock类图分析实践
ReetrantLock是一个独占锁、可重入锁。所谓独占锁是只有一个线程可以获取占有它。ReetrantLock锁包括fairReetrantLock和unfairReetrantLock。
面时莫慌 | 深入分析JUC之Lock接口
确实,从Java5以后,Lock的出现解决了synchronized 的一些短板,使用起来更加灵活。
面时莫慌 | 一文带你认知不一样的Synchronized
synchronized关键字,在并发编程中一直都是元老级别的存在,我们习惯于称之为重量级锁,跟随我的视野,让我们一层一层的剥开它,看看这到底是个啥!
面时莫慌 | 你好,谈谈对Synchronized的理解?(六)
这篇文章我们来总结一下这`synchronized`和`volatile`的主要区别。`synchronized`用于实现一个基于锁的线程模型;而`volatile`包括`Atomic`是非锁定的
面时莫慌 | 你好,谈谈对Synchronized的理解?(五)
上一小节讲到了两个线程竞争锁资源,未获取到锁资源的线程在自旋策略范围内未获取到锁资源,轻量级锁就会升级成重量级锁,这个重量级就是真正的锁,它是一个互斥锁,加锁和解除锁资源都非常消耗资源。
面时莫慌 | 你好,谈谈对Synchronized的理解?(四)
上一小节说到了两个线程竞争锁,导致偏向锁的撤销,撤销过程中有一种常见的锁升级,即升级成轻量级锁。轻量级锁适用于两个线程竞争锁资源,并且同步代码块执行很快的场景。
面时莫慌 | 你好,谈谈对Synchronized的理解?(三)
多个线程竞争共享资源时,未竞争到资源的线程会一直处于阻塞状态,性能开销很大,同时对于重量级锁,对于加锁和释放锁也有很多的资源消耗。
面时莫慌 | 你好,谈谈对Synchronized的理解?(二)
锁存储布局 synchronized始终与对象关联。如果方法是静态的,那么关联的对象就是类;如果该方法是非静态的,则关联的对象是实例。如果是代码块,那么就是指定的对象。很显然,锁是记录于对象中。
面时莫慌 | 你好,谈谈对Synchronized的理解?(一)
上一篇文章我们花了很大的篇幅来分析理解`volatile`关键字,感兴趣的同学可以出门左转[《你好,请谈谈volatile关键字?(全篇)》]
面时莫慌 | 你好,请谈谈volatile关键字?(全篇)
耗时一周,看完就懂,volatile分析全篇,把之前写的五篇文章全部都总结到一起,方便各位看官进行阅读。
面时莫慌 | 你好,请谈谈volatile关键字?(五)
这篇文章从实例入手,引出了多线程环境下操作共享变量会有可见性,顺序性等问题。结合硬件环境,分析为有效利用计算机资源,提高并发度
面时莫慌 | 你好,请谈谈volatile关键字?(四)
内存屏障是一组处理器指令(硬件相关),用于对内存操作顺序做一些限制。可以用来实现多线程访问内存上同一资源的可见性。
面时莫慌 | 你好,请谈谈volatile关键字?(三)
这种可见性问题,可以基于JMM(Java 内存模型)的内存屏障去解决,恰恰好,这个就是`volatile`保证多线程环境下可见性的杀手锏。
面时莫慌 | 你好,请谈谈volatile关键字?(二)
一个运算的过程是,运算开始时将运算要使用到的数据移动到缓存中,当运算结束时再将运算结果同步到内存中。
面时莫慌 | 你好,请谈谈volatile关键字?(一)
说起`Volatile`关键字,很多人那叫一个气,这个不起眼的`Java`关键字为难了太多的英雄好汉。初看它时,觉得格外的简单,仔细看它,才发现打扰了。这篇文章带大家由深及浅的分析这个关键字。
面时莫慌 | 一文看懂线程的生命周期(二)
一文看懂线程的生命周期,本部分全面解答文章一开始提出的问题。`WAITING `是死等,除非中断、产生异常,主动释放。
面时莫慌 | 一文看懂线程的生命周期(一)
再介绍线程的生命周期之前,我们先来仔细想想几个问题。 - 线程的生命周期状态有哪些,状态流程是怎么样的?
面时莫慌 | 天啦撸,创建线程有且仅有一种方式
这一篇来谈谈基于`Java 8`如何创建并应用线程。惊呆了,为啥创建线程有且仅有一种方式呢?不是多个吗?
面时莫慌 | 并发编程有哪些挑战?
上文讲到,为了提高计算机资源的利用率,先驱们依次创造了操作系统、进程、线程、协程,这些技术通过时间片分配、上下文切换、多线程等原理实现了对资源利用的最大化。这篇文章来讲一下并发编程带来的挑战。
面时莫慌 | 进程 线程 协程
从`冯·诺依曼`发明世界上第一台机计算机后,很长一段时间内,计算机都没有操作系统。人们只能在计算机上运行单个程序,那时候使用计算机正常的流程为,输入运行指令、执行运行指令、得到运算结果。