首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
午夜12点
掘友等级
|
迷
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
44
文章 44
沸点 0
赞
44
返回
|
搜索文章
赞
文章( 44 )
沸点( 0 )
Java并发——AbstractQueuedSynchronizer(AQS)同步器
在此之前介绍ReentrantLock、ReentrantReadWriteLock中都有sync属性,而sync正是继承了AQS(AbstractQueuedSynchronizer)同步器。AQS采用模板设计模式,调用其模板方法(独占式获取与释放同步状态、共享式获取与释放同…
Java并发——读写锁ReentrantReadWriteLock
ReentrantReadWriteLock即可重入读写锁,同样也依赖于AQS来实现。在介绍ReentrantLock我们知道其依托AQS的同步状态来判断锁是否占有,而ReentrantReadWriteLock既有读锁又有写锁,是如何依靠一个状态来维持的? Reentrant…
Java并发——ReentrantLock
ReentrantLock即可重入锁(当前线程获取该锁再次获取不会被阻塞),是一种递归无阻塞的同步机制。ReentrantLock基于AQS来实现,相对于内置锁synchronized关键字功能更强大,多了等待可中断、公平性、绑定多个条件等机制,还可以tryLock()避免死锁…
Java并发——非阻塞队列ConcurrentLinkedQueue
种方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁 (入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现。非阻塞的实现方式则可以使用循环CAS的方式来实现。 ConcurrentLinkedQueue是无界线程安全队列(FIFO)…
Java并发——ConcurrentHashMap(JDK 1.8)
一说到HashMap与Hashtable区别就会想到前者线程不安全,后者线程安全。但是当我们需要线程安全的时候,Hashtable并不是一个良好的选择,concurrentHashMap才是。 我们可以看到Hashtable用synchronized关键字来保证线程安全,锁住当…
你必须『收藏』的Github技巧
一秒钟把Github项目变成前端网站 GitHub Pages大家可能都知道,常用的做法,是建立一个gh-pages的分支,通过setting里的设置的GitHub Pages模块可以自动创建该项目的网站。这里经常遇到的痛点是,master遇到变更,经常需要去sync到gh-p…
Java并发——关键字synchronized解析
同步方法:方法级同步没有通过字节码指令来控制,它实现在方法调用和返回操作之中。当方法调用时,调用指令会检查方法ACC_SYNCHRONIZED访问标志是否被设置,若设置了则执行线程需要持有管程(Monitor)才能运行方法,当方法完成(无论是否出现异常)时释放管程。 同步代码块…
后端架构师技术图谱
分享自 GitHub
Java并发—— 关键字volatile解析
Java内存模型规定了所有的变量都存储在主内存中,每条线程拥有自己的工作内存,工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作(读写)都必须在工作内存中进行,不同的线程之间无法直接访问对方工作内存的变量。线程、主内存、工作内存关系: 以经典的i++为例…
JVM学习笔记——类加载机制
类的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。 主要加载核心类库,负责存放在JAVA_HOME\lib目录中的,或者-Xbootclasspath参数指定路径中的,并且被虚拟机识别(仅按照文件名识别,如rt.jar)的类库加载到虚拟机内存中。控制台输…
下一页
个人成就
文章被点赞
682
文章被阅读
68,925
掘力值
2,385
关注了
23
关注者
433
收藏集
2
关注标签
5
加入于
2017-04-25