From 995953b40c5ef002dcb2091893fb7e49168571a6 Mon Sep 17 00:00:00 2001
From: bunny <1319900154@qq.com>
Date: Thu, 23 May 2024 15:56:38 +0800
Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20:rocket:=20NettyFut?=
=?UTF-8?q?ure=E8=8E=B7=E5=8F=96=E7=BB=93=E6=9E=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/inspectionProfiles/Project_Default.xml | 2 +-
.../java/cn/bunny/demo5/TestAsyncFuture.java | 21 +++++++++++++++
.../java/cn/bunny/demo5/TestNettyFuture.java | 26 +++++++++++++++++++
.../test/java/cn/bunny/demo5/UdkFuture.java | 26 +++++++++++++++++++
4 files changed, 74 insertions(+), 1 deletion(-)
create mode 100644 netty/service/src/test/java/cn/bunny/demo5/TestAsyncFuture.java
create mode 100644 netty/service/src/test/java/cn/bunny/demo5/TestNettyFuture.java
create mode 100644 netty/service/src/test/java/cn/bunny/demo5/UdkFuture.java
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index 68cc5d4..7cbf688 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -2,7 +2,7 @@
-
+
\ No newline at end of file
diff --git a/netty/service/src/test/java/cn/bunny/demo5/TestAsyncFuture.java b/netty/service/src/test/java/cn/bunny/demo5/TestAsyncFuture.java
new file mode 100644
index 0000000..01c608d
--- /dev/null
+++ b/netty/service/src/test/java/cn/bunny/demo5/TestAsyncFuture.java
@@ -0,0 +1,21 @@
+package cn.bunny.demo5;
+
+import io.netty.channel.EventLoop;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.util.concurrent.Future;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class TestAsyncFuture {
+ public static void main(String[] args) {
+ NioEventLoopGroup loopGroup = new NioEventLoopGroup();
+ EventLoop eventLoop = loopGroup.next();
+ Future future = eventLoop.submit(() -> {
+ log.debug("执行计算...");
+ Thread.sleep(1000);
+ return 70;
+ });
+
+ future.addListener(future1 -> log.debug("接受结果:{}", future1.getNow()));
+ }
+}
diff --git a/netty/service/src/test/java/cn/bunny/demo5/TestNettyFuture.java b/netty/service/src/test/java/cn/bunny/demo5/TestNettyFuture.java
new file mode 100644
index 0000000..a66317d
--- /dev/null
+++ b/netty/service/src/test/java/cn/bunny/demo5/TestNettyFuture.java
@@ -0,0 +1,26 @@
+package cn.bunny.demo5;
+
+import io.netty.channel.EventLoop;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.util.concurrent.Future;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.concurrent.ExecutionException;
+
+@Slf4j
+public class TestNettyFuture {
+ public static void main(String[] args) throws ExecutionException, InterruptedException {
+ NioEventLoopGroup group = new NioEventLoopGroup();
+ EventLoop eventLoop = group.next();
+
+ Future future = eventLoop.submit(() -> {
+ Thread.sleep(1000);
+ return 70;
+ });
+
+ // 主线程通过 future 来获取结果
+ log.debug("主线程等待结果");
+ future.get();
+ log.debug("结果是:{}", future.get());
+ }
+}
diff --git a/netty/service/src/test/java/cn/bunny/demo5/UdkFuture.java b/netty/service/src/test/java/cn/bunny/demo5/UdkFuture.java
new file mode 100644
index 0000000..83a2985
--- /dev/null
+++ b/netty/service/src/test/java/cn/bunny/demo5/UdkFuture.java
@@ -0,0 +1,26 @@
+package cn.bunny.demo5;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
+@Slf4j
+public class UdkFuture {
+ public static void main(String[] args) throws ExecutionException, InterruptedException {
+ // 线程池
+ ExecutorService service = Executors.newFixedThreadPool(2);
+ // 提交任务
+ Future future = service.submit(() -> {
+ Thread.sleep(1000);
+ return 50;
+ });
+
+ // 主线程通过 future 来获取结果
+ log.debug("主线程等待结果");
+ future.get();
+ log.debug("结果是:{}", future.get());
+ }
+}