import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Maps;
import com.sankuai.meituan.health.marketingc.base.client.domain.common.UserInfo;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import javax.annotation.Resource;
import org.assertj.core.util.Lists;
import org.junit.Test;
/**
* @author: lixingzhong
* @date: 2022/10/17 3:56 下午
*/
public class CommonTest {
@Test
public void testThenApply() {
CompletableFuture<Integer> future1 = CompletableFuture.supplyAsync(()->{
System.out.println("compute 1, " + System.currentTimeMillis());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return 1;
});
CompletableFuture<Integer> future2 = future1.thenApply((p)->{
System.out.println("compute 2, " + System.currentTimeMillis());
return p+10;
});
System.out.println("result: " + future2.join() + "; timestamp: " + System.currentTimeMillis());
}
@Test
public void testThenCombine() {
CompletableFuture<Integer> future1 = CompletableFuture.supplyAsync(()->{
System.out.println("compute 1, " + System.currentTimeMillis());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return 1;
});
CompletableFuture<Integer> future2 = CompletableFuture.supplyAsync(()->{
System.out.println("compute 2, " + System.currentTimeMillis());
return 10;
});
CompletableFuture<Integer> future3 = future1.thenCombine(future2, Integer::sum);
System.out.println("result: " + future3.join() + ", timestamp: " + System.currentTimeMillis());
}
@Test
public void testThenCompose() {
CompletableFuture<Integer> future1 = CompletableFuture.supplyAsync(()->{
System.out.println("compute 1, " + System.currentTimeMillis());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return 1;
});
CompletableFuture<Integer> future2 = future1.thenCompose((r)->CompletableFuture.supplyAsync(()-> {
System.out.println("compute 2, " + System.currentTimeMillis());
return r+10;
}));
System.out.println("result: " + future2.join() + ", timestamp: " + System.currentTimeMillis());
}
}
Demo:Completeable
最新推荐文章于 2024-10-06 20:21:59 发布