在一些接口响应时间的优化中有一些任务是可以异步处理的,常常会用到这个线程池。但是有一些业务需要依赖异步任务的结果,那么就需要用到 CompletableFuture 或者 FutureTask ,或者在一些多任务并发执行的时候,CompletableFuture 可以提供一些方法让我们更容易的控制并发编程。
这种就是画蛇添足的做法,等于脱裤子放屁。
第二种方式是把一些业务代码放在 get()方法之前去执行。这种是 oK 的,但是还有一个问题。如果异步任务是 IO 密集型,那么就需要解决线程池的问题。
第三种:使用额外的线程池,处理这个 IO 密集型任务。
使用 CompletableFuture 、FutureTask 的前提:
注意事项:
这些问题的详细描述在我的 B 站里 ,java 并发编程: https://www.bilibili.com/video/BV1CA4y1S7Pe? 这些都是 API 的使用,其实很无聊。但是错的人太多了,所以就讲一下这个问题。头大。。
其他的场景就是多个任务同步执行的情况,可以使用 allOf ,compose 等,那么就不在这里给大家演示了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.