首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
并发锁
订阅
13693351085
更多收藏集
微信扫码分享
微信
新浪微博
QQ
15篇文章 · 0订阅
ReentrantLock源码分析
有公平和不公平两种获取锁的实现方式。Reentranlock 中有一个内部抽象类Sync继承自AbstractQueuedSynchronized, Reentrantlock支持Condition,AQS中有同步队列和条件队列,不清楚的,可以看下我的另一篇AbstractQu…
让人抓头的Java并发(四) 阻塞队列--CPU飙升排查案例
说来也是挺巧的,那天一位同事iMac换了Macbook Pro。然后像往常一样启动了各个服务,过了会电脑风扇疯狂工作发出响声,由于平常iMac上IDEA项目开的比较多占用较多内存时间长了也会卡顿,所以他并没有在意。但是之后一直是这样我们便觉得很奇怪,然后打开了他的活动监视器,发…
浅谈AQS(抽象队列同步器)
抽象队列同步器,以下统称AQS,用于解决的就是多线程并发访问控制问题。在传统的多线程编程中,如果有多个线程需要访问同一个变量,就需要使用synchronized来为临界区加锁(临界区:访问共享资源的程序段),但是这种方式既不“优雅”,也不高效(即使Java为其已经做了很多优化)…
Java并发编程—synchronized保证线程安全的原理分析
程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其…
前端开发者必备的Nginx知识
... nginx现在几乎是众多大型网站的必用技术,大多数情况下,我们不需要亲自去配置它,但是了解它在应用程序中所担任的角色,以及如何解决这些问题是非常必要的。 下面我将从nginx在企业中的真实应用来解释nginx在应用程序中起到的作用。 不管是正向代理还是反向代理,实现的都…
JAVA中锁的深入理解与解析
如果想要透彻的理解java锁的来龙去脉,需要先了解以下基础知识。 锁从宏观上分类,分为悲观锁与乐观锁。 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采…
BAT经典面试题,深入理解Java内存模型JMM
Java 内存模型(JMM)是一种抽象的概念,并不真实存在,它描述了一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段、静态字段和构成数组对象的元素)的访问方式。试图屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果…
再有人问你Java内存模型是什么,就把这篇文章发给他
前几天,发了一篇文章,介绍了一下JVM内存结构、Java内存模型以及Java对象模型之间的区别。有很多小伙伴反馈希望可以深入的讲解下每个知识点。Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识。 网上有很多关于Java内存模型的文章,在《深…
什么是Java内存模型?
大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行的时候,又免不了要和数据打交道,而计算机上面的临时数据,是储存在主存中的。 上面的执行过程在单线程情况下并没有问题,但是在多线程情况下就会出现问题,因为CPU如果含有多个核心,则每个核心都有自己独占高速缓存,如…