![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
多线程&高并发
Java多线程高并发专栏
码农渔夫
我是一名新时代广深漂农民工,擅长Go、K8S、gRPC等相关技术。
2023年开始,已全面拥抱Rust高性能,All in AI大模型,期待!
路漫漫其修远兮,吾将上下而求索。有空来我知识星球逛逛:Meta-Go笔记(免费)
展开
-
深入理解synchronized底层源码,小白这篇足够了
深入理解synchronized底层源码前言这篇文章从JVM源码分析synchronized的实现逻辑,这样才能更加对synchronized深度的认识。进程:操作系统资源分配的基本单位。线程:cpu调度的基本单位(真实执行)阅读导航深入理解synchronized底层源码前言一、synchronized的使用场景二、JVM中,对象在内存中的布局三、synchronized底层从字节码聊起四、monitor到底是什么?五、深入synchronized底层源码六、锁的优化1、偏向锁2、偏向锁的获取原创 2020-06-26 12:27:55 · 1574 阅读 · 0 评论 -
synchronized源码,就是这么简单!
简单分析synchronized的源码从 monitorenter和 monitorexit这两个指令来开始阅读源码,JVM将字节码加载到内存以后,会对这两个指令进行解释执行, monitorenter, monitorexit的指令解析是通过 InterpreterRuntime.cpp中的两个方法实现。IRT_ENTRY_NO_ASYNC(void, InterpreterRuntime::monitorenter(JavaThread* thread, BasicObjectLock* elem)原创 2020-06-25 15:13:39 · 751 阅读 · 0 评论 -
面试官:HashMap加载因子为什么是0.75?小伙子当场懵了
HashMap的确有很多细节值得我们注意,正如被问到HashMap加载因子为什么是0.75?,好了废话不多说,直接上源码分享。HashMap加载因子是什么?static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}// AbstractMappublic int hashCode() { int h =原创 2020-06-23 22:37:22 · 2081 阅读 · 0 评论 -
最近面试又被synchronized虐,该怎么办好?
1、面试被问synchronized,你真的回答对了吗首先认识synchronized是什么,为什么要用它,它能给我们带来什么好处?synchronized关键字是用来解决在多线程之间访问资源的下得到同步性的,就是当被synchronized修饰的方法或者代码块时,它会保证任意时刻只能有一个线程执行。这样就确保线程互斥的访问同步代码、保证共享变量的修改能够及时可见、有效解决重排序问题。2、你是如何使用synchronized加锁的修饰实例方法:作用于当前对象实例加锁,进入同步代码前获得当前对象实例原创 2020-06-12 15:10:40 · 314 阅读 · 0 评论