当前位置: 首页 > wzjs >正文

网站设计一般包括网站结构设计wordpress 作者页面

网站设计一般包括网站结构设计,wordpress 作者页面,成都网站seo排名,wordpress 不能评论一、前言 在Java并发编程中,CompletableFuture是一个强大而灵活的工具。今天,我们将深入探讨它的实现原理、最佳实践,以及面试中的重要考点。 二、CompletableFuture的本质 CompletableFuture是Java 8引入的异步编程工具,它实现了Future和CompletionStage两个接口。这个…

一、前言

在Java并发编程中,CompletableFuture是一个强大而灵活的工具。今天,我们将深入探讨它的实现原理、最佳实践,以及面试中的重要考点。

二、CompletableFuture的本质

CompletableFuture是Java 8引入的异步编程工具,它实现了Future和CompletionStage两个接口。这个设计让它既保持了Future的基本特性,又通过CompletionStage接口提供了强大的任务编排能力。

让我们先看一个基本示例:

public class CompletableFutureBasics {public static void main(String[] args) {CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {// 模拟耗时操作sleep(1000);return "Hello";}).thenApply(result -> {// 转换结果return result + " World";});// 非阻塞方式处理结果future.thenAccept(System.out::println);}
}

三、核心方法

3.1 实例方法

public class Completable01 {public static void main(String[] args) throws Exception {// 线程池ExecutorService executor = Executors.newFixedThreadPool(3);// 1、创建未完成的CompletableFuture,通过complete()方法完成CompletableFuture<Integer> cft01 = new CompletableFuture<>() ;cft01.complete(99) ;// 2、创建已经完成CompletableFuture,并且给定结果CompletableFuture<String> cft02 = CompletableFuture.completedFuture("given...value");// 3、有返回值,默认ForkJoinPool线程池CompletableFuture<String> cft03 = CompletableFuture.supplyAsync(() -> {return "OK-3";});// 4、有返回值,采用Executor自定义线程池CompletableFuture<String> cft04 = CompletableFuture.supplyAsync(() -> {return "OK-4";},executor);// 5、无返回值,默认ForkJoinPool线程池CompletableFuture<Void> cft05 = CompletableFuture.runAsync(() -> {});// 6、无返回值,采用Executor自定义线程池CompletableFuture<Void> cft06 = CompletableFuture.runAsync(()-> {}, executor);}
}

3.2 计算方法

public class Completable02 {public static void main(String[] args) throws Exception {// 线程池ExecutorService executor = Executors.newFixedThreadPool(3);CompletableFuture<String> cft01 = CompletableFuture.supplyAsync(() -> {try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}return "OK";},executor);// 1、计算完成后,执行后续处理// cft01.whenComplete((res, ex) -> System.out.println("Result:"+res+";Exe:"+ex));// 2、触发计算,如果没有完成,则get设定的值,如果已完成,则get任务返回值// boolean completeFlag = cft01.complete("given...value");// if (completeFlag){//     System.out.println(cft01.get());// } else {//     System.out.println(cft01.get());// }// 3、开启新CompletionStage,重新获取线程执行任务cft01.whenCompleteAsync((res, ex) -> System.out.println("Result:"+res+";Exe:"+ex),executor);}
}

3.3 获取结果方法

public class Completable03 {public static void main(String[] args) throws Exception {// 线程池ExecutorService executor = Executors.newFixedThreadPool(3);CompletableFuture<String> cft01 = CompletableFuture.supplyAsync(() -> {try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}return "Res...OK";},executor);// 1、阻塞直到获取结果// System.out.println(cft01.get());// 2、设定超时的阻塞获取结果// System.out.println(cft01.get(4, TimeUnit.SECONDS));// 3、非阻塞获取结果,如果任务已经完成,则返回结果,如果任务未完成,返回给定的值// System.out.println(cft01.getNow("given...value"));// 4、get获取抛检查异常,join获取非检查异常System.out.println(cft01.join());}
}

3.4 任务编排方法

public class Completable04 {public static void main(String[] args) throws Exception {// 线程池ExecutorService executor = Executors.newFixedThreadPool(3);CompletableFuture<String> cft01 = CompletableFuture.supplyAsync(() -> {try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("OK-1");return "OK";},executor);// 1、cft01任务执行完成后,执行之后的任务,此处不关注cft01的结果// cft01.thenRun(() -> System.out.println("task...run")) ;// 2、cft01任务执行完成后,执行之后的任务,可以获取cft01的结果// cft01.thenAccept((res) -> {//     System.out.println("cft01:"+res);//     System.out.print

文章转载自:

http://PrBrgn58.fbjnr.cn
http://1N35XFoe.fbjnr.cn
http://PtoWcjMY.fbjnr.cn
http://wWnfhhJJ.fbjnr.cn
http://JZAWVdYR.fbjnr.cn
http://J3Bo2prs.fbjnr.cn
http://Va7QZY6S.fbjnr.cn
http://t5cjGTZd.fbjnr.cn
http://jtr6kgQu.fbjnr.cn
http://syMCIWaC.fbjnr.cn
http://CFdhYz4M.fbjnr.cn
http://1SIVQRRM.fbjnr.cn
http://kMdEK4G3.fbjnr.cn
http://LdQU7wOv.fbjnr.cn
http://juxaZN36.fbjnr.cn
http://Px4f3y4x.fbjnr.cn
http://v00AOAs8.fbjnr.cn
http://06dF4smv.fbjnr.cn
http://PXfEBaDP.fbjnr.cn
http://2UCt43JD.fbjnr.cn
http://CUd6cw5Z.fbjnr.cn
http://gcym7g3V.fbjnr.cn
http://4WhVsghF.fbjnr.cn
http://8frFOYlf.fbjnr.cn
http://g7Daeu6A.fbjnr.cn
http://Mp7uHmyg.fbjnr.cn
http://exJ5HzqN.fbjnr.cn
http://qpyPBY53.fbjnr.cn
http://hwz2Eg4W.fbjnr.cn
http://Mr3It4ZG.fbjnr.cn
http://www.dtcms.com/wzjs/751441.html

相关文章:

  • 福建泉州做网站公司承德建设工程信息网站
  • 网站标头设计网站建设的一般过程包括哪些方面
  • 提供网站建设出售wordpress多筛选
  • 证券网站开发上海外贸新三样出口超2400亿元
  • 昆山专业网站建设网站推广对企业的优势
  • 洛阳市副市长到省建设厅网站ps网页设计尺寸规范
  • 湖南省住房和建设厅网站舟山 做企业网站
  • 上饶网站网站建设网页设计什么专业
  • 做很多网站软件开发游戏公司
  • 邢台专业做网站报价集宁做网站的公司
  • 常用seo站长工具的网站建设
  • 江苏扬州建设局网站虚拟空间能建多个网站
  • 社区网站优化桂林市区地图
  • 网站开发入门书籍推荐wordpress怎么提权
  • 广州南沙建设交通网站做网站收费
  • 北京网站建设取名字大全免费查询
  • 西宁市城东区住房和建设局网站少儿编程加盟费一般多少钱
  • 电子商务网站的建站流程制作企业网站费用明细
  • WordPress能够做小说网站吗wordpress 引用 格式
  • 北京建设协会网站网页设计大作业
  • 临湘网站wordpress能用代码吗
  • 国外网站设计的网站phpstudy如何建设网站
  • 网站建设教程学校网站设计接单
  • 做视频网站需要什么证件网络推广专员好做吗
  • 建设网站的页面设计苏州网站设计电话
  • 株洲网站排名无锡新吴区住房建设交通局网站
  • 世界杯直播观看网站三大框架网站开发
  • 企业网站的基本类型包括wordpress主题 摄影师
  • 网站建设管理工作经验介绍网站开发专家:php+mysql网站开发技术与典型案例导航
  • 越秀微网站建设婚纱网站策划书模板