首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
三石架构
掘友等级
开发
获得徽章 2
动态
文章
专栏
沸点
收藏集
关注
作品
赞
13
文章 12
沸点 1
赞
13
返回
|
搜索文章
三石架构
关注了
uzong
开发
三石架构
关注了
程序员码叔
开发
三石架构
关注了
yikejiucai
开发
三石架构
赞了这篇文章
捡田螺的小男孩
公众号:捡田螺的小男孩
·
1年前
关注
Redis分布式锁的10个坑
大家好,我是田螺。 日常开发中,经常会碰到秒杀抢购等业务。为了避免并发请求造成的库存超卖等问题,我们一般会用到Redis分布式锁。但是使用Redis分布式锁,很容易踩坑哦~...
88
10
分享
三石架构
关注了
初念初恋
开发
三石架构
赞了这篇文章
初念初恋
公众号 @初念初恋
·
2年前
关注
一文彻底弄懂ConcurrentHashMap,轻松应对面试官!
ConcurrentHashMap是HashMap的线程安全版本,内部也是使用(数组 + 链表 + 红黑树)的结构来存储元素。相比于同样线程安全的HashTable来说,效...
109
5
分享
三石架构
关注了
秦二爷
开发
三石架构
关注了
why技术
开发
三石架构
关注了
托尼学长
开发
三石架构
赞了这篇沸点
hashcon
CTO @某技术公司
·
7月前
举报
统一回复 Java 21 虚拟线程问题:
1. ThreadLocal 继续用么?Java 开发组本来设计虚拟线程的时候,想去掉对于 ThreadLocal 的支持,但是由于使用的库太多,并且很多为了传参才用,并不是缓存,所以就保持了支持。像隐式传参的这种场景,继续用也没事儿,就是性能有所损耗。(不会影响 GC,生命周期随着虚拟线程终止,但是线程本地变量数量变多,哈希表变大,需要频繁清理)。千万别在虚拟线程的 ThreadLocal 放大对象。Java 开发组是想通过 ScopedLocal 替换掉 ThreadLocal(这个没有大哈希的问题),但是在 21 还是 preview。
2. 虚拟线程主要通过 Continuation 实现,虚拟线程栈会在切换的时候复制到 Continuation 中,切换回来的时候,复制回来,但是不是每次都全量复制。在切换回来的时候,线程栈帧懒复制,调用返回到哪个就复制回哪个,这对于像是 servlet 这种很多层调用的是很大的优化,因为栈深度可能有 上百层,但是实际业务只会用到头部几层,这样大大减少了切换的性能消耗。
3. 网络 io 方面,虚拟线程目前完全不会阻塞了。
4. 文件 io 方面,目前实现方式是遇到就增加一个平台线程来规避阻塞。这个会在 io_uring 引入到 JVM 支持后进行优化,到时候文件 io 也原生不会阻塞。
5. JFR,Thread Stack Dump,调试器, JVM TI 都可以兼容虚拟线程。但是要记住,调试虚拟线程可能也会让其他虚拟线程无法执行,因为载波线程是同一个
6. synchronized 以及涉及 ObjectMonitor 的还是会 pin 住载体平台线程,要在你的代码中避免使用。
7. 虚拟线程无法 getAllThreads(),这个方法返回的是所有平台线程
8. 所有 JMX 以及 java.lang.management 相关的都是处理平台线程,不支持 VirtualThread
9. 虚拟线程支持类似于 jstack 的 dump,但是命令有所不同,请通过 jcmd 获取。并且格式是 json,没有死锁信息(虚拟线程 dump 不会进入全局安全点STW所以无法获取一致性信息例如死锁等)
展开
等人赞过
分享
评论
4
三石架构
开发
·
7月前
举报
#新人报道#
面试总是被问到没遇到过的场景怎么办?
服务端与架构
等人赞过
分享
评论
5
三石架构
赞了这篇文章
hashcon
CTO @某技术公司
·
1年前
关注
JVM 输出 GC 日志导致 JVM 卡住,我 TM 人傻了
最近,我们升级了 Java 17。后来,我们的 k8s 运维团队为了优化我们的应用日志采集,将我们所有 pod (你可以理解为一个 Java 微服务进程)的 JVM 日志都...
79
10
分享
三石架构
关注了
hashcon
开发
三石架构
关注了
程序员小灰
开发
三石架构
关注了
lei838016
开发
三石架构
赞了这篇文章
walker_sunxy
搬🧱
·
2年前
关注
Mysql ALTER TABLE 加字段的时候到底锁不锁表?
Mysql5.6版本之前 更新步骤 对原始表加写锁 按照原始表和执行语句的定义,重新定义一个空的临时表。 对临时表进行添加索引(如果有)。 再将原始表中的数据逐条Copy到...
13
评论
分享
三石架构
关注了
架构精进之路
VIP.1 初学乍练
开发
三石架构
赞了这篇文章
半夏之沫
系统研发 @微凉树屋
·
1年前
关注
详细分析MySQL中的三大日志
本篇文章讨论的MySQL中的三大日志,指用于数据恢复的redo log,用于事务回滚的undo log,以及用于数据恢复和主从同步的binlog...
16
5
分享
三石架构
关注了
楼仔
开发
下一页
关注了
19
关注者
0
收藏集
16
关注标签
34
加入于
2021-09-07