首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
黑漏
掘友等级
后端 java
进击的程序猿
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
18
文章 18
沸点 0
赞
18
返回
|
搜索文章
赞
文章( 18 )
沸点( 0 )
并发编程之ThreadLocal 解读
ThreadLocal实例的弱引用对象会作为key存放在ThreadLocalMap中,然后set方法加入的值就作为ThreadLocalMap中的value。它提供了线程本地变量,可以保证访问到的变量属于当前线程。 通过Thread.currentThread()方法获取了当…
并发编程之AQS剖析
AQS全称是AbstractQueuedSynchronizer,即抽象同步队列。下面看一下AQS的类图结构: 在AQS中维持了一个volatile修饰的单一共享状态state,来实现同步器同步。其更新采用乐观锁思想的CAS算法。 CLH(Craig, Landin, and …
蚂蚁消息中间件 (MsgBroker) 在 YGC 优化上的探索
GC 一直是 Java 应用中被讨论得最多的话题之一,尤其对于消息中间件这样的基础应用,GC 停顿产生的延迟会严重影响其在线服务能力,是开发和运维人员关注的重点。 关于 GC 优化,首先最容易想到的就是调整那些影响 GC 性能的 JVM 参数(如新生代与老年代的大小、晋升到老年…
并发编程之上下文切换
CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。 上下文切换过高,会导致CPU像个搬运工,频繁在寄存器和…
源码系列-ConcurrentHashMap源码
JDK1.8 的实现摒弃了Segment的概念,直接用Node数组 + 链表 + 红黑树的数据结构来实现,并发控制使用Synchronized和CAS来操作
源码系列-HashMap源码解读(JDK1.8)
首先看一下Map家族四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap。 下面我们主要解读HashMap,结合源码,从存储结构、常用方法分析、扩容以及安全性等方面深入解读HashMap的工作原理。 引入了红黑树是因为它查找、插…
HashMap与ConcurrentHashMap你不得不知道的几个点
| 底层结构 | 1. JDK1.8之前:数组+链表 2. JDK1.8:数组+链表/红黑树 | 扰动函数 | 1. JDK1.8之前扰动处理 = 9次扰动 = 4次位运算 + 5次异或运算 2. JDK1.8扰动处理 = 2次扰动 = 1次位运算 + 1次异或运算 | | 插…
前后端分离 , 如何保证接口安全性 ?
将要提交的数据,通过某种方式组合成一个字符串,然后通过 MD5 算法生成一个签名。如果觉得单纯的 MD5 不够安全的话,还可以在 MD5 的时候加盐和加 hash 。 在参数中加上当前请求的时间戳,服务端拿到这个请求后会拿当前的时间和请求中的时间做比较,比如在 5 分钟之内的才…
并发编程之LockSupport
LockSupport提供的park/unpark是以线程的角度来设计,真正解耦了线程之间的同步。 park()方法,对当前线程执行阻塞操作,直到获取到可用许可后才解除阻塞,也就相当于当前线程进入阻塞状态。 parkNanos(long)方法,对当前线程执行阻塞操作,等待获取到…
并发编程之死锁、活锁、锁饥饿
死锁是指两个或两个以上的进程(线程)在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。 请求与保持条件:一个线程(进程)因请求被占用…
下一页
个人成就
文章被点赞
161
文章被阅读
374,696
掘力值
4,343
关注了
2
关注者
46
收藏集
0
关注标签
14
加入于
2021-03-17