美文网首页
java自带异步方法

java自带异步方法

作者: __简单点__ | 来源:发表于2020-10-28 09:56 被阅读0次

    超时时间

    long timeout = 10000l;

    DeferredResult> result =

    new DeferredResult<>(timeout);

    异步跑 其实就是调方法 开了一个线程

    CompletableFuture.supplyAsync(()->{

    return searchService.filterProduct(queryProductDTO);

    }).thenAccept((list)->{ 

    上面返回的结果会传递给下面list 进行封装

    result.setResult(new ResponseData(list));

    }).exceptionally(e->{  

     若异步出现异常或者超时 会进入此

    result.setErrorResult(new ResponseData<Object>(500,e.getMessage()));

    return null;

    });

    return result;

    java实现异步的方法:https://www.cnblogs.com/sword-successful/p/11181714.html

    一:创建线程

    二:jdk1.8前通过Executors获取线程池 然后用submit方法执行异步操作获得future对象

    存在问题 不算是真正的异步操作,因为获取异步结果时:用get()方法 会阻塞当前线程

    三:jdk1.8:通过CompletableFuture对象的supplyAsync方法实现异步,通过thenAccept方法接收返回对象,通过Exceptionally方法处理异常

    四:spring实现异步:通过配置线程池 加 Async注解执行操作,通过其返回Future对象的get方法处理异步结果

    五:利用中间件:mq来执行异步操作 解耦应用程序。

    相关文章

      网友评论

          本文标题:java自带异步方法

          本文链接:https://www.haomeiwen.com/subject/fxqpmktx.html