体验了一下Java 8 异步 API、循环、日期,还真挺好!

作者:微信小助手

发布时间:2021-01-19T22:38:06

点击上方关注这个神奇的公众号~


作者:funnyZpC
出处:cnblogs.com/funnyzpc/p/10801470.html

异步API

对于多任务耗时的业务场景,一般我们会用到线程异步处理,在以前我们用 Thread 或者 Runnable 来实现异步,这是oracle官方做法,不过缺点很明显

  • 对于复杂业务场景需要配置线程池

  • 代码繁杂,对于新手容易造成不必要的bug

  • 如果涉及到线程锁或线程通讯就棘手了

现在,java8为我们提供了CompletableFuture类,可以完全解决以上问题。

主要方法有:

  • runAsync() 异步无参返回

  • 样例:

@Test
public void asyncThread()throws Exception{
    CompletableFuture async1 = CompletableFuture.runAsync(()->{
        try {
            Thread.sleep(1000);
            System.out.println(Thread.currentThread().getName());
            System.out.println("none return Async");
        }catch (Exception e){
            e.printStackTrace();
        }
    });
    // 调用get()将等待异步逻辑处理完成
    async1.get();
}
  • supplyAsync() 异步有参返回

  • 样例:

@Test