作者:璐璐
原文:https://segmentfault.com/a/1190000018161130?utm_source=tuicool&utm_medium=referral
前言
2024年08月25日
作者:璐璐
原文:https://segmentfault.com/a/1190000018161130?utm_source=tuicool&utm_medium=referral
前言
2024年08月25日
我们经常在JUC包下的ConcurrentHashMap、Atomic开头的原子操作类、AQS以及LockSupport里面看到Unsafe类的身影,这个Unsafe类究竟是干什么的,本文可以带着读者一探究竟。
Java和C++、C语言的一个重要区别,就是Java中我们无法直接操作一块内存区域,而在C++、C中却可以自己申请内存和释放内存。Unsafe类的设计,为我们提供了手动管理内存的能力。
2024年08月25日
比较并交换(compare and swap, CAS),是原子操作的一种,可用于在多线程编程中实现不被打断的数据交换操作,从而避免多线程同时改写某一数据时由于执行顺序不确定性以及中断的不可预知性产生的数据不一致问题。
CAS操作基于CPU提供的原子操作指令实现,各个编译器根据这个特点实现了各自的原子操作函数。来源维基百科:
2024年08月25日
关注我的微信公众号:后端技术漫谈
不定期推送关于后端开发、爬虫、算法题、数据结构方面的原创技术文章,以及生活中的逸闻趣事。
我目前是一名后端开发工程师。主要关注后端开发,数据安全,网络爬虫,物联网,边缘计算等方向。
2024年08月25日
喜大普奔,本期发布中,我们的应用从 jdk7 升级到 jdk8,终于可以用上新特性的语法进行代码编写,通过几轮开发、测试和验证后,在上预发环境时,应用突然无法启动,查看 tomcat 报错原因,发现是
2024年08月25日
最近我们线上有同学反馈,java 服务在接入了支持预发的 javaagent 以后会出现缓存的内存增长,去掉 agent 启动以后内存增长正常。于是分析了一下这个问题,写了这篇文章。
备注:JVM 堆内存最大 1000M
2024年08月25日
CAS:比较并交换(compareAndSet)
CAS的全称是Compare-And-Swap,它是一条CPU并发原语。它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新值,这个过程是原子的。
2024年08月25日
拟机的整体结构就长这个样子,当然,每一部分都非常重要。任何一部分的确实虚拟机都不完整将无法完成工作,但是它们之前存在着重要性的区分。接下来用尽可能精简的语言回忆下这些知识。