首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java核心
订阅
CCUP
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
并发的核心:CAS 是什么?Java8是如何优化 CAS 的?
大家可能都听说说 Java 中的并发包,如果想要读懂 Java 中的并发包,其核心就是要先读懂 CAS 机制,因为 CAS 可以说是并发包的底层实现原理。 今天就带大家读懂 CAS 是如何保证操作的原子性的,以及 Java8 对 CAS 进行了哪些优化。 学会多线程的同学应该都…
百度、腾讯热门面试题:聊聊Unix与Java的IO模型?(含详细解析)
如果去百度、腾讯等一线大厂面试,一定会深入考候选人的基础技术功底,其中尤为关键和重视的就是IO相关的技术和知识。 而要搞明白IO相关的概念,首先就得弄清楚同步与异步,阻塞与非阻塞到底是什么意思。 实际上阻塞与非阻塞的概念,通常是针对底层的IO操作来说的。 比如现在我们的程序想要…
阿里大师带你解析: 为什么Redis单线程却能支撑高并发?
最近在看 UNIX 网络编程并研究了一下 Redis 的实现, Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。(文末有彩蛋!) 首先,Redis 是跑在单线程中的,所有的操…
Java 多线程和高并发面试题
volatile 是一种轻量级的同步机制。 JMM(Java 内存模型)是一种抽象的概念,描述了一组规则或规范,定义了程序中各个变量的访问方式。 JVM运行程序的实体是线程,每个线程创建时 JVM 都会为其创建一个工作内存,是线程的私有数据区域。JMM中规定所有变量都存储在主内…
【Java并发】锁优化
锁的状态总共有四种:无锁状态、偏向锁、轻量级锁和重量级锁。随着锁的竞争,锁可以从偏向锁升级到轻量级锁,再升级的重量级锁。但是不可以降级。 sychronized就是重量级锁。 Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又…
求求你不要再问我重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁等各种锁 ---- 不看后悔系列
重量级锁?自旋锁?自适应自旋锁?轻量级锁?偏向锁?悲观锁?乐观锁?执行一个方法咋这么辛苦,到处都是锁。 今天这篇文章,给大家普及下这些锁究竟是啥,他们的由来,他们之间有啥关系,有啥区别。 如果你学过多线程,那么你肯定知道锁这个东西,至于为什么需要锁,我就不给你普及了,就当做你是…
Spring Bean 生命周期 (实例结合源码彻底讲透)
本篇文章主要是要介绍如何在Spring IoC 容器中 如何管理Spring Bean生命周期。 在应用开发中,常常需要执行一些特定的初始化工作,这些工作都是相对比较固定的,比如建立数据库连接,打开网络连接等,同时,在结束服务时,也有一些相对固定的销毁工作需要执行。为了便于这些…
NIO相关基础篇一
NIO相关知识是很多后续的一些基础知识,所以今天这篇文章仅仅是简单介绍,后续会继续有一到二篇相关NIO内容。 Java NIO( New IO) 是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,…
Map之HashMap源码浅析-扩容
初始化时,为一个Node类型的数组,每个元素为一组键值对。 从静态类中的next可以看出,Node为链表结构。即Node数组的每个元素(也可称为桶)都可存储一个链表。 1. 源码跟踪 示例:创建一个hashmap,放入3个键值对。 新建一个HashMap,默认大小为16,且都为…
CAS导致的ABA问题及解决
CAS,比较并交换(Compare-and-Swap,CAS),如果期望值和主内存值一样,则交换要更新的值,也称乐观锁。 如线程甲从主内存中拷贝了变量A为1,在自己的线程中将副本A改为了10,当线程甲准备把这个变量更新到主内存时,如果主内存A的值不改变(期望值),还是1,那么线…