【并发编程】
文章平均质量分 75
【并发编程】
CBeann
阿里淘天Java开发工程师,CSDN博客专家,阿里云博客专家,专注于后端技术的分享。如果你迷茫,不妨来瞅瞅码农的轨迹。模拟面试简历辅导、内推加VX:CHAI956056312
展开
-
【生产案例面试题】JVM调优
JVM生产调优案例原创 2024-04-11 00:58:20 · 924 阅读 · 2 评论 -
读已提交隔离级别下竟然有间隙锁
读已提交隔离级别下竟然有间隙锁原创 2024-03-09 18:14:22 · 953 阅读 · 4 评论 -
隔离在高可用架构中的使用
隔离高可用架构中的使用原创 2023-11-12 17:52:34 · 286 阅读 · 2 评论 -
有过JVM调优经验吗【面试题】
有过JVM调优经验吗?有,然后让面试官无话可说原创 2023-07-09 14:10:52 · 509 阅读 · 9 评论 -
美团动态线程池实践思路,开源了【转载】
美团动态线程池实践思路,开源了 - 掘金转载 2023-05-25 23:55:47 · 262 阅读 · 0 评论 -
分布式主键生成设计策略
常见的分布式主键生成策略原创 2022-09-24 21:57:15 · 2979 阅读 · 9 评论 -
Sentinel源码分析总结
写作目的最近在看Sentinel源码,遇到了几个问题,想再此记录和分享一下遇到的几个问题,方便读者看到我的文章后就不用在继续搜索了。环境搭建Nacos服务注册中心安装:https://cbeann.blog.csdn.net/article/details/105435181sentinel安装:https://cbeann.blog.csdn.net/article/details/105461870服务:https://gitee.com/cbeann/Demooo/tree/master/s原创 2022-04-25 10:13:48 · 472 阅读 · 0 评论 -
volatile关键字解析
并发编程中的三个概念原子性原子性其实在数据库中也有体现,拿转账为例,张三给李四转1块钱,业务逻辑为张三减1块钱,李四加一块钱,这些必须同时成功。此处略去一万字。可见性操作系统当CPU访问数据的时候,其实是有多级缓存的,如下图所示(深入理解计算机系统 原书第三版 ),当多个CPU去访问一个数据的时候,他会把主存中的数据先缓存到高速缓存里,然后在执行操作,那么此时如果两个CPU同时执行a=a+1操作,如果没有一定的同步方法,那么就会出现修改丢失的问题,因此可见性就是保证当一个CPU或者线程对某一个共享原创 2021-07-24 13:51:36 · 327 阅读 · 1 评论 -
ThreadLocal笔记
写作目录 简单分析三种ThreadLocal并对三种ThreadLocal做比较ThreadLocalThreadLocal使用场景 ThreadLocal是和当前线程绑定在一起的,就是在一开始的设置一个值,然后在后面可以获得这个值。ThreadLocal使用案例public class ThreadLocalDemo { public static ThreadLocal threadLocal = new ThreadLocal(); public stati...原创 2021-05-16 17:44:49 · 289 阅读 · 3 评论 -
ZooKeeper可视化工具PrettyZoo,真香【转载】
在使用ZooKeeper的时候,不太喜欢命令行的同学,没有可视化工具,确实不太舒服,之前我也找过zk的可视化工具,但是途径都不是正规,感觉不太安全。今天在Hollis 微信转载 2021-06-19 14:26:57 · 1710 阅读 · 1 评论 -
epoll:水平触发与边缘触发【转载】
https://www.jianshu.com/p/7eaa0224d797转载 2021-06-07 17:04:57 · 288 阅读 · 0 评论 -
如何让一个线程“优雅”地退出
参考https://blog.csdn.net/qq_37171353/article/details/111541438原创 2021-06-07 15:33:34 · 817 阅读 · 0 评论 -
synchronized锁升级原理
Java对象的内存结构对象内存结构在64位操作系统下,MarkWord(下图_mark)占64位KlassWord(下图_klass)占32位_lengh(只有数据对象才有,不考虑)实例数据(下图instance data)看参数的类型,int就占32位(4byte)补齐(padding)是JVM规定java对象内存必须是8byte的倍数,如果实例数据占2byte,那么(64bit的Markword+32bit的Klassword+实例数据32bit)=128bit=16byte原创 2021-01-19 19:20:04 · 344 阅读 · 2 评论 -
线程中断方法interrupt、isInterrupted、interrupted方法
方法 解释 Thread.currentThread().interrupt(); 给线程标记为中断状态 Thread.currentThread().isInterrupted(); 返回线程中断标志位是否为中断,中断返回true,反之false Thread.interrupted(); 返回线程中断标志位是否为中断,中断返回true,反之false;并且清除之前的中断状态,即把当前线程改为非中断状态 Thread.currentThread().interrup原创 2020-12-22 14:36:14 · 918 阅读 · 2 评论 -
以JDBC为例谈双亲委派模型的破坏【转载】
讲的贼明白https://www.jianshu.com/p/09f73af48a98转载 2020-05-27 14:42:39 · 345 阅读 · 0 评论 -
ReentrantReadWriteLock源码分析
构造方法分析//无参构造方法调用有参构造方法,并且传入一个参数为falsepublic ReentrantReadWriteLock() { this(false);//----->跟进去 }//fair为false,表示创建一个非公平的AQSpublic ReentrantReadWriteLock(boolean fair) { sync = fair ? new FairSync() : new NonfairSync();原创 2020-05-10 00:29:51 · 328 阅读 · 2 评论 -
JVM笔记
JVM模型Class Loader类加载器负责加载class文件,class文件在文件开头有特定的文件标识,并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。Method Area方法区(永久区)方法区是被所用的线程共享,所有字段和方法字节码,以及一些特殊方法如构造函数,接口代码也是再此定义。简单说,所有定...原创 2020-01-01 14:31:52 · 690 阅读 · 1 评论 -
《java并发编程实战》总结
第一章 简介线程的优势:①发挥多处理器的强大优势 ②建模的简单性③异步事件的简化处理④相应更灵敏的用户界面线程带来的风险:①安全性问②活跃性问题③性能问题第2章 线程安全性2.1什么是线程安全性 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就...原创 2020-03-31 23:59:42 · 1174 阅读 · 0 评论 -
线程和线程池
线程线程的几种状态public enum State { //创建后尚未启动的线程处于这种状态。 NEW, //Runable包括了操作系统现线程状态中的Runing和Ready,也就是处于次状态的线程有可能正在执行,也有可能正在等待着CPU为它分配执行时间。 RUNNABLE, //线程被阻塞了,“...原创 2020-01-01 19:09:09 · 305 阅读 · 0 评论 -
ReentrantLock源码分析笔记-单线程公平锁为例
前提1)大致了解AQS原理(☆☆☆)2)熟悉双向链表的基本操作3)本文以公平锁上锁释放锁为例跟ReentrantLock代码(☆☆☆)4)本文以单线程抢占锁释放锁为例(☆☆☆)5)建议了解公平锁和非公平锁的区别6)较好的理解能力(作者表达能力差)AQSAQS的核心思想(参考版)如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并将共享资源设置...原创 2020-01-30 03:13:54 · 292 阅读 · 0 评论