首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
并发编程
书包肚肚
创建于2022-01-07
订阅专栏
学习java并发编程的基础知识
等 14 人订阅
共19篇文章
创建于2022-01-07
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
java并发编程(十九)Semaphore、CountdownLatch和CyclicBarrier你都玩过吗?
在JUC这个线程同步工具包下,有几个比较有意思的类,Semaphore、CountdownLatch和CyclicBarrier,你都用过吗?下面我们就来简单介绍下他们的用法,并且提供些简单的代码示例
java并发编程(十八)啥是读写锁【ReentrantReadWriteLock】?
前面我们学习了AQS,ReentrantLock等,现在来学习一下什么是读写锁ReentrantReadWriteLock。 当读操作远远高于写操作时,这时候可以使用【读写锁】让【读-读】可以并发,
java并发编程(十七)带你了解什么是面试官常说的AQS
AbstractQueuedSynchronizer是阻塞式锁,以及同步器组件的实现框架。是JDK中实现并发编程的核心,它提供了一个基于FIFO队列,平时我们工作中经常用到的ReentrantLock
java并发编程(十六)带你了解volatile原理
写屏障对于共享变量的所有修改,在写屏障前的所有共享变量,都需要同步到主内存当中。读屏障对于共享变量的所有修改,在读屏障后的所有共享变量,都需要同从主存当中获取。
java并发编程(十五)CPU缓存结构是啥样的?
缓存的意义在于缓存热点数据,随着科技进步以及热点数据的逐步增加,一级缓存已经不能满足了。 二级缓存是一级缓存的缓冲,一级缓存速度快,造价高,容量小。 三级缓存则作为二级缓存的缓冲,速度相对于二级缓
java并发编程(十四)什么是指令集并行?
现在CPU支持多级指令流水线,如上面介绍的,将指令分成5个步骤执行的CPU,我们就称之为五级指令流水线。这样的CPU可以在一个时钟周期内,同时执行5个指令的不同阶段。
java并发编程(十三)java内存共享模型原理分析
JMM(Java Memory Model),它定义了主存、工作内存的概念,底层同时对应着CPU的主存,缓存,寄存器,硬件等。
java并发编程(十二)ReentrantLock深入浅出
可重入是指同一个线程如果首次获得了这把锁,因为它是这把锁的拥有者,因此有权利再次获取这把锁。如果是不可重入锁,那么第二次尝试获得锁时,自己也会被锁挡住。
java并发编程(十一)LockSupport之park/unpark
每个线程都有自己的一个 Parker 对象,由三部分组成 _counter , _cond 和 _mutex。 简单描述下:_counter就是是否阻塞的标记 , _cond就好比阻塞后线程的容器,
java并发编程(十)synchronized原理之wait/notify
我们都知道wati/notify用于线程间的同步。 假设有一把锁lock,此时线程t1来持有这把锁,但是由于其不满足业务条件暂时不能继续执行,如果t2此时来获取锁,发现锁仍被t1占有,则会发生阻塞,
java并发编程(九)synchronized原理之锁消除和锁粗化
JMH 是 OpenJDK 团队开发的一款基准测试工具,一般用于代码的性能调优,精度甚至可以达到纳秒级别,适用于 java 以及其他基于 JVM 的语言。 下面只介绍我的使用方法,因为我有一个自己的
java并发编程(八)synchronized原理之偏向锁
偏向锁的引入,对轻量级锁的CAS操作进行了优化。轻量级锁需要每次都是用CAS来尝试获取锁,占用CPU时间。 jdk1.6中引入偏向锁后,只有第一次使用 CAS 将线程 ID 设置到对象的 Mark
java并发编程(七)synchronized原理之重量级锁
轻量级锁是指在满足一定的条件内,使用CAS(自旋)来尝试获取对象锁的一种机制,如果超过以下条件,则会膨胀为重量级锁
java并发编程(六)synchronized原理之Monitor和轻量级锁简介
每个 Java 对象都可以关联一个 Monitor 对象,如果使用 synchronized 给对象上锁(重量级)之后,该对象头的Mark Word 中就被设置指向 Monitor 对象的指针。不加
java并发编程(五)要学习锁?先来看看Java对象头
在我们学习synchronized的原理之前,必须要先学习下java的对象头,这有助于我们理解synchronized。
java并发编程(四)线程共享模型
什么是线程共享模型?存在了哪些问题?又有什么解决方案呢?你使用的变量是安全的吗?常见的安全类又有哪些呢?
java并发编程(三)java线程状态与方法
在操作系统层面,线程的状态分为以下几种:初始状态、可运行状态、运行状态、阻塞状态、终止状态。在java层面,则分为6种。
java并发编程(二)java线程介绍
简单介绍线程的使用方式,线程上下文切换是什么?线程与jvm的关系又是什么?以及不同环境下如何查看线程?
java并发编程(一) 线程和进程
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。线程(英语:thread)是操作系统能够进行运算调度的最小单位。