Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
Java新提案:Extent-Local变量
22-08-03
banq
Extent-Local 被提议作为一种在线程之间共享数据的新方式,它比 ThreadLocals 更轻量、更不可变,它包含更不容易出错的语法,并且与虚拟线程很好地配合使用。
目标
易用性——提供一种在线程内和与子线程共享数据的编程模型,以简化对数据流的推理。
可理解性——使共享数据的生命周期从代码的句法结构中可见。
鲁棒性——确保调用者共享的数据只能由合法的被调用者检索。
性能——将共享数据视为不可变的,以便允许大量线程共享,并启用运行时优化。
在虚拟线程编程中,线程局部变量比共享数据通常所需的复杂性更高,而且成本高昂且无法避免。如果 Java 平台提供了一种方法,可以为数千或数百万个虚拟线程提供不可变的每个线程数据,并且考虑到分叉虚拟线程的低成本,那么这将是理想的。因为这些每个线程的变量是不可变的,所以它们的数据可以被子线程有效地共享。此外,这些每个线程变量的生命周期应该是有限的:一旦最初共享数据的方法完成,通过每个线程变量共享的任何数据都应该变得不可用。
详细点击标题
Loom虚拟线程
并发编程
java20