From 9a6cc56927e1863692d6c2286d180d68082d38a5 Mon Sep 17 00:00:00 2001 From: tongtongstudio Date: Sat, 24 Oct 2026 15:59:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=20Maven=20=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=B9=B6=E6=B7=BB=E5=8A=A0=E7=A4=BA=E4=BE=8B=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 pom.xml,引入 lunar 依赖,Java 版本 25 - 新增 .gitignore 忽略常见 IDE 与构建产物 - 新增 Main 示例入口 - 新增 LunarSample 阴历转换示例 - 新增 VirtualThreadSimpleBenchmark 虚拟线程与平台线程池对比示例 --- .gitignore | 41 +++++++++++++++++ pom.xml | 23 ++++++++++ src/main/java/com/ttstd/LunarSample.java | 15 +++++++ src/main/java/com/ttstd/Main.java | 17 +++++++ .../ttstd/VirtualThreadSimpleBenchmark.java | 44 +++++++++++++++++++ 5 files changed, 140 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/java/com/ttstd/LunarSample.java create mode 100644 src/main/java/com/ttstd/Main.java create mode 100644 src/main/java/com/ttstd/VirtualThreadSimpleBenchmark.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..87d165c --- /dev/null +++ b/.gitignore @@ -0,0 +1,41 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ +.kotlin + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store + +/.idea/ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..f2207fb --- /dev/null +++ b/pom.xml @@ -0,0 +1,23 @@ + + + 4.0.0 + + com.ttstd + MavenUtils + 1.0-SNAPSHOT + + + cn.6tail + lunar + 1.7.7 + + + + 25 + 25 + UTF-8 + + + \ No newline at end of file diff --git a/src/main/java/com/ttstd/LunarSample.java b/src/main/java/com/ttstd/LunarSample.java new file mode 100644 index 0000000..ed1be87 --- /dev/null +++ b/src/main/java/com/ttstd/LunarSample.java @@ -0,0 +1,15 @@ +package com.ttstd; + +import com.nlf.calendar.Lunar; + +public class LunarSample { + public static void main(String[] args){ + //今天 + //Lunar date = new Lunar(); + + //指定阴历的某一天 + Lunar date = new Lunar(1986,4,21); + System.out.println(date.toFullString()); + System.out.println(date.getSolar().toFullString()); + } +} diff --git a/src/main/java/com/ttstd/Main.java b/src/main/java/com/ttstd/Main.java new file mode 100644 index 0000000..00b01c0 --- /dev/null +++ b/src/main/java/com/ttstd/Main.java @@ -0,0 +1,17 @@ +package com.ttstd; + +//TIP 要运行代码,请按 或 +// 点击装订区域中的 图标。 +public class Main { + static void main() { + //TIP 当文本光标位于高亮显示的文本处时按 + // 查看 IntelliJ IDEA 建议如何修正。 + IO.println(String.format("Hello and welcome!")); + + for (int i = 1; i <= 5; i++) { + //TIP 按 开始调试代码。我们已经设置了一个 断点 + // 但您始终可以通过按 添加更多断点。 + IO.println("i = " + i); + } + } +} diff --git a/src/main/java/com/ttstd/VirtualThreadSimpleBenchmark.java b/src/main/java/com/ttstd/VirtualThreadSimpleBenchmark.java new file mode 100644 index 0000000..134d693 --- /dev/null +++ b/src/main/java/com/ttstd/VirtualThreadSimpleBenchmark.java @@ -0,0 +1,44 @@ +package com.ttstd; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +public class VirtualThreadSimpleBenchmark { + + private static final int TASK_COUNT = 10_000; + private static final int IO_DELAY_MS = 50; + + public static void main(String[] args) throws Exception { + // 1. 平台线程池(常见配置) + test("Platform FixedThreadPool(200)", + Executors.newFixedThreadPool(200)); + + // 2. 虚拟线程(每个任务一个虚拟线程) + test("Virtual Threads", + Executors.newVirtualThreadPerTaskExecutor()); + } + + private static void test(String name, ExecutorService executor) + throws InterruptedException { + + System.out.println("\n=== " + name + " ==="); + long start = System.currentTimeMillis(); + + for (int i = 0; i < TASK_COUNT; i++) { + executor.execute(() -> { + try { + Thread.sleep(IO_DELAY_MS); // 模拟 I/O 阻塞 + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + }); + } + + executor.shutdown(); + executor.awaitTermination(1, TimeUnit.HOURS); + + long cost = System.currentTimeMillis() - start; + System.out.println("Total time: " + cost + " ms"); + } +}