Skip to content

Commit 2255058

Browse files
committed
⚰️ 🍻 💩
1 parent 7472e6b commit 2255058

File tree

1 file changed

+32
-5
lines changed

1 file changed

+32
-5
lines changed

toolTest/common/src/test/java/tool/guava/ListeningExecutorServiceTest.java

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
package tool.guava;
22

3+
import com.google.common.base.Function;
34
import com.google.common.util.concurrent.*;
5+
import org.checkerframework.checker.nullness.qual.Nullable;
46
import org.junit.jupiter.api.Test;
57

68
import java.util.concurrent.ExecutorService;
79
import java.util.concurrent.Executors;
810
import java.util.concurrent.TimeUnit;
11+
import java.util.stream.IntStream;
912

1013

1114
/**
12-
*
1315
* ListeningExecutorService 是Guava对Java标准库ExecutorService的扩展,
1416
* 1、支持回调机制:不再需要手动get()等待结果,任务完成后自动触发回调
1517
* 2、返回ListenableFuture:支持链式操作
@@ -21,13 +23,13 @@
2123
public class ListeningExecutorServiceTest {
2224

2325

26+
ExecutorService executorService = Executors.newFixedThreadPool(8);
2427

28+
ListeningExecutorService listeningExecutorService = MoreExecutors.listeningDecorator(executorService);
2529

26-
@Test void t1(){
27-
28-
ExecutorService executorService = Executors.newFixedThreadPool(8);
2930

30-
ListeningExecutorService listeningExecutorService = MoreExecutors.listeningDecorator(executorService);
31+
@Test
32+
void t1() {
3133

3234

3335
ListenableFuture<?> future = listeningExecutorService.submit(() -> {
@@ -44,6 +46,7 @@ public class ListeningExecutorServiceTest {
4446
public void onSuccess(Object result) {
4547
System.out.println("Task success");
4648
}
49+
4750
@Override
4851
public void onFailure(Throwable t) {
4952
System.out.println("Task fail");
@@ -59,7 +62,31 @@ public void onFailure(Throwable t) {
5962
}
6063

6164

65+
@Test
66+
void v2() {
67+
ListenableFuture<String> str = listeningExecutorService.submit(() -> {
68+
System.out.println("123");
69+
return "123";
70+
});
71+
ListenableFuture<Integer> transform = Futures.transform(str, new Function<String, Integer>() {
72+
@Override
73+
public Integer apply(String input) {
74+
return Integer.valueOf(input);
75+
}
76+
}, MoreExecutors.directExecutor());
77+
78+
Futures.addCallback(transform, new FutureCallback<Integer>() {
79+
@Override
80+
public void onSuccess(@Nullable Integer result) {
81+
System.out.println("Task success " + result);
82+
}
83+
@Override
84+
public void onFailure(Throwable t) {
85+
System.out.println("Task fail");
86+
}
87+
}, MoreExecutors.directExecutor());
6288

89+
}
6390

6491

6592
}

0 commit comments

Comments
 (0)