ThreadForge v1.1.0 发布:让 Java 并发更接近 Go 的开发体验

正好春节放假,自驾去了陕西、河南、安徽,一路上走走停停。

白天基本在路上,晚上在酒店或者服务区休息时,抽一些时间继续打磨 ThreadForge。

一点点补了个 v1.1.0 出来。

仍然保持 ThreadForge 的目标:
让 Java 能写出更简单、更可推理、更可观测的并发代码。

这次版本,重点补齐了并发开发里几个还算常见的能力。

v1.1.0 核心更新

  1. Retry Policy(失败重试)

    支持 scope 级默认重试,也支持任务级覆盖,不再到处手写 while/try-catch 重试模板。

  2. Per-Task Timeout(任务级超时)

    除了 scope 的 deadline 外,任务本身可设置独立超时,慢任务可快速失败,不拖全局节奏。

  3. Context Propagation(上下文传播)

    支持平台线程与虚拟线程的上下文自动捕获与恢复,覆盖提交任务、调度任务和嵌套提交场景。

  4. OpenTelemetry 集成
    withOpenTelemetry(...) 一行开启任务生命周期追踪,便于链路排障与性能分析。

  5. Task Priority(任务优先级)

    引入优先级调度(高/中/低),关键任务可以更快执行。

示例代码

java 复制代码
import io.threadforge.*;

import java.time.Duration;

public class Demo {
    public static void main(String[] args) {
        Context.put("traceId", "req-20260219");

        try (ThreadScope scope = ThreadScope.open()
            .withScheduler(Scheduler.priority(8))
            .withRetryPolicy(RetryPolicy.fixedDelay(3, Duration.ofMillis(100)))
            .withOpenTelemetry()
            .withFailurePolicy(FailurePolicy.SUPERVISOR)
            .withDeadline(Duration.ofSeconds(3))) {

            Task<String> critical = scope.submit(
                "critical-task",
                () -> remoteCall("A"),
                TaskPriority.HIGH,
                RetryPolicy.attempts(2),
                Duration.ofMillis(500)
            );

            Task<String> normal = scope.submit(
                "normal-task",
                () -> remoteCall("B"),
                TaskPriority.NORMAL,
                Duration.ofSeconds(1)
            );

            Outcome outcome = scope.await(critical, normal);
            System.out.println(outcome);
        }
    }

    private static String remoteCall(String name) {
        return "ok-" + name + "-" + Context.get("traceId");
    }
}

这段代码里同时覆盖了:

重试、任务级超时、上下文传播、优先级调度、可观测追踪。

能明显看出来,这次更新,把额外的几个核心痛点做了系统性的收敛:

  1. 比方说重试、超时、优先级等逻辑,不必再散落在业务里。
  2. 让开发从关注线程调度细节,回到关注任务目标上。
  3. 让任务的生命周期天然可接入 OTel,降低排障成本。

升级方式

Maven:

xml 复制代码
<dependency>
    <groupId>pub.lighting</groupId>
    <artifactId>threadforge-core</artifactId>
    <version>1.1.0</version>
</dependency>

Gradle:

gradle 复制代码
implementation("pub.lighting:threadforge-core:1.1.0")

更新日志与仓库

  1. 仓库:github.com/wuuJiawei/T...
  2. 更新日志:github.com/wuuJiawei/T...
  3. Maven Central:pub.lighting:threadforge-core:1.1.0

如果你也在做 Java 并发治理,并希望降低团队心智负担,欢迎试用 v1.1.0,也欢迎反馈真实业务场景。

相关推荐
guodingdingh6 小时前
软件开发工作问题总结0718
java·开发语言·数据库
咖啡八杯8 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
优橙教育8 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
掘金码甲哥8 小时前
这块终端神器, 必须吹爆!
后端
糖果店的幽灵9 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
Csvn9 小时前
📊 SQL 入门 Day 8:集合操作 — 用 SQL 做数学里的"并交差"
后端·sql
腻害兔10 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
CodexDave10 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
碎光拾影10 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
Miao1213111 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言