首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
A
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
java并发编程系列:牛逼的AQS(上)
设计java的大叔们为了我们方便的自定义各种同步工具,为我们提供了大杀器AbstractQueuedSynchronizer类,这是一个抽象类,以下我们会简称AQS,翻译成中文就是抽象队列同步器。这家伙老有用了,封装了各种底层的同步细节,我们程序员想自定义自己的同步工具的时候,…
秒杀架构实践
之前在 Java-Interview 中提到过秒杀架构的设计,这次基于其中的理论简单实现了一下。 先简单根据这个图谈下请求的流转,因为后面不管怎么改进这个都是没有变的。 前端请求进入 web 层,对应的代码就是 controller。 之后将真正的库存校验、下单等请求发往 Se…
阿里面试题BIO和NIO数量问题附答案和代码
答案: 因为传统的 IO 也就是 BIO 是同步线程堵塞的,所以每个连接都要分配一个专用线程来处理请求,这样 10 个连接就会创建 10 个线程去处理。而 NIO 是一种同步非阻塞的 I/O 模型,它的核心技术是多路复用,可以使用一个链接上的不同通道来处理不同的请求,所以即使有…
初识Java内存模型
JMM规定Java每个线程都有自己的工作内存(Working Memory),线程的工作内存中有共享变量的副本,共享变量则存放在主存(Main Memory)中。工作内存是线程私有的,而主存则是所有线程共享的。工作内存用于存放线程私有的数据。而Java内存模型中规定所有变量都存…
CAS原子操作以及其在Java中的应用
CAS(Compare And Swap)意为比较并且交换,CAS它是一个原子操作。CAS操作涉及到三个值:当前内存中的值V,逾期内存中的值E和待更新的值U。如果当前内存中的值V等于预期值E,则将内存中的值更新为U,CAS操作成功。否则不更新CAS操作失败。 CAS在JUC中有…
从 synchronized 到 CAS 和 AQS - 彻底弄懂 Java 各种并发锁
Java 中的并发锁大致分为隐式锁和显式锁两种。隐式锁就是我们最常使用的 synchronized 关键字,显式锁主要包含两个接口:Lock 和 ReadWriteLock,主要实现类分别为 ReentrantLock 和 ReentrantReadWriteLock,这两个类…
深入理解synchronized关键字
synchronized是并发编程中重要的使用工具之一,我们必须学会使用并且掌握它的原理。 JVM自带的关键字,可在需要线程安全的业务场景中使用,来保证线程安全。 锁的是当前类或者指定类的Class对象。一个类可能有多个实例对象,但它只可能有一个Class对象。 使用synch…
大白话聊聊Java并发面试问题之Java 8如何优化CAS性能?【石杉的架构笔记】
上篇文章给大家聊了一下volatile的原理,具体参见:大白话聊聊Java并发面试问题之volatile到底是什么?。 这篇文章给大家聊一下java并发包下的CAS相关的原子操作,以及Java 8如何改进和优化CAS操作的性能。 因为Atomic系列的原子类,无论在并发编程、J…
Volatile之Java内存模型概念
本文主要讲解Java内存模型和并发的基础概念,目的是为下文“volatile实践”一文做铺垫。 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个…
面试必备:Java线程池解析
掌握线程池是后端程序员的基本要求,相信大家求职面试过程中,几乎都会被问到有关于线程池的问题。我在网上搜集了几道经典的线程池面试题,并以此为切入点,谈谈我对线程池的理解。如果有哪里理解不正确,非常希望大家指出,接下来大家一起分析学习吧。 面试问题2:按线程池内部机制,当提交新任务…