首页 > 其他分享 >JEP 462 结构化并发是一个很愚蠢的提案

JEP 462 结构化并发是一个很愚蠢的提案

时间:2024-03-20 17:59:15浏览次数:13  
标签:JEP subtasks thread 结构化 virtual 462 并发 任务 线程

https://openjdk.org/jeps/462

Motivation
Developers manage complexity by breaking tasks down into multiple subtasks. In ordinary single-threaded code, the subtasks execute sequentially. However, if the subtasks are sufficiently independent of each other, and if there are sufficient hardware resources, then the overall task can be made to run faster (i.e., with lower latency) by executing the subtasks concurrently. For example, a task that composes the results of multiple I/O operations will run faster if each I/O operation executes concurrently in its own thread. Virtual threads (JEP 444) make it cost-effective to dedicate a thread to every such I/O operation, but managing the huge number of threads that can result remains a challenge.

开发人员通过将任务分解为多个子任务来管理复杂性。在普通的单线程代码中,子任务顺序执行。然而,如果子任务彼此充分独立,并且如果有足够的硬件资源,则可以通过同时执行子任务来使整体任务运行得更快(即,具有更低的延迟)。例如,如果每个 I/O 操作在自己的线程中并发执行,则由多个 I/O 操作组成的任务将运行得更快。虚拟线程 ( JEP 444 ) 使为每个此类 I/O 操作专用一个线程变得经济高效,但管理可能产生的大量线程仍然是一个挑战。

该提案还号称参考了 Erlang

Structured concurrency is an approach to concurrent programming that preserves the natural relationship between tasks and subtasks, which leads to more readable, maintainable, and reliable concurrent code. The term "structured concurrency" was coined by Martin Sústrik and popularized by Nathaniel J. Smith. Ideas from other languages, such as Erlang's hierarchical supervisors, inform the design of error handling in structured concurrency.

但是在 erlang 的视角, process 本身就是贯穿性的任务实体, 而 virtual thread 相当于 erlang 的 process, 按此推理, virtual thread 形成一个层次化的关系, 就可以表达任务及其子任务.

在 ExecutorService 时代, 线程很贵, Java 的 Runnable Callable 跨越了多个线程, 将任务分布于线程上, 是很高明的设计. 但 virtual thread 已经不需要这种巧妙的设计了————这不知道是进步还是退步————既然选择了 virtual thread 新的并发模型就应当以 virtual thread 出发. 遗憾的是, virtual thread 努力摆脱的 reactive 编程 在这个结构化并发的提案里又回来了.

virtual thread 再加一个 channel 就相当于 golang 了, 搞并发的不妨别管 JEP462.

标签:JEP,subtasks,thread,结构化,virtual,462,并发,任务,线程
From: https://www.cnblogs.com/inshua/p/18085741

相关文章

  • 如何保护非结构化数据,防止敏感信息泄露?
    在21世纪的数据驱动时代,企业的数据安全问题显得尤为重要,尤其是非结构化数据的保护。在这篇文章中,我们将讨论如何保护非结构化数据,防止敏感信息泄露。非结构化数据包括企业的设计图纸、研发成果、内部决议、财务报告、商业合同、客户信息等,这些数据往往分散在不同的终端上,基本处......
  • 结构化思维助力Prompt创作:专业化技术讲解和实践案例
    结构化思维助力Prompt创作:专业化技术讲解和实践案例最早接触Promptengineering时,学到的Prompt技巧都是:你是一个XX角色…你是一个有着X年经验的XX角色…你会XX,不要YY..对于你不会的东西,不要瞎说!…对比什么技巧都不用,直接像使用搜索引擎一样提问,......
  • 弱结构化日志 Flink SQL 怎么写?SLS SPL 来帮忙
    作者:潘伟龙(豁朗)背景日志服务SLS是云原生观测与分析平台,为Log、Metric、Trace等数据提供大规模、低成本、实时的平台化服务,基于日志服务的便捷的数据接入能力,可以将系统日志、业务日志等接入SLS进行存储、分析;阿里云Flink是阿里云基于ApacheFlink构建的大数据分析平台......
  • P1462 通往奥格瑞玛的道路
    原题传送门思路首先通过读题可以发现两个量分别是血量和金钱,血量当然是越多越好,而金钱确实要最多的一次最少,一般题目说让一个量最多的时候最少,或最少的时候最多,那就会用二分来枚举这个量。那么这一题我们就会选择二分金钱,二分的条件就是到达终点的是的血量有没有大于总血量,也就......
  • 需求结构化:数据定义
    1背景前文以实例的形式讨论了用例生成、需求检查等功能。这些功能可行的前提,是需求逻辑能够被计算机程序正确的识别、计算。所谓需求结构化,是将非结构化需求转换为结构化需求的过程。而所谓结构化需求,是指基于明确语法表达的需求。结构化需求是半形式化的(semi-formal),可以转换为......
  • 北京地铁经纬度结构化数据收集20240203
    地铁图 原始数据共250个站点,或有遗漏1苹果园,39.9263251384,116.17778062822古城,39.9072014648,116.19024753573八角游乐园,39.9074319023,116.21282100684八宝山,39.9072673042,116.23582363135玉泉路,39.9073331435,116.25303268436五棵松,39.......
  • [职场] 教师招考结构化面试题及答案
    教师招考结构化面试是选拔优秀教师的重要环节,通过对面试者的专业知识、教育教学能力、沟通协作能力等方面的考查,选拔出具备优秀潜质的教师。本文将针对教师招考结构化面试中的常见问题进行梳理,并提供参考答案,以帮助您更好地应对面试。一、专业知识类问题1.请简述我国教育的基本任......
  • 结构化命令case和for、while循环
    1、case流程控制语句case是一种流程控制语句,通常用于根据不同的条件值执行不同的代码块。它的语法如下:caseexpressionin pattern1)    #在匹配pattern1时执行的代码   ;; pattern2)    #在匹配pattern2时执行的代码   ......
  • TSINGSEE车辆检测算法及车辆结构化数据在车辆智能管控中的应用
    AI边缘计算智能分析网关V4车辆检测、车牌识别算法融合了ORC识别、云计算、计算机视觉、大数据检索等多种技术,可将运动中的机动车牌照从复杂的背景中提取并识别出来,通过车牌提取、图像预处理、特征提取、车牌字符识别等流程,识别出车辆牌号、颜色等信息。AI智能分析网关V4内置近40......
  • 第四章结构化布线系统——教案
    第四章结构化布线系统一、教学目标:1.掌握结构化布线系统的概念、优点、标准、结构2.掌握双绞线的应用3.了解光纤的应用4.了解布线系统的测试技术5.了解结构化布线系统工程安装施工的基本知识二、教学重点、难点结构化布线系统和双绞线的特性、RJ-45接头的接线标准及其制作三、......