Tar*_*Tar 6 java concurrency multithreading android java-7
根据Future我的理解,获得a的唯一方法是使用an ExecutorService,例如通过获取Executors.newFixedThreadPool(10)(顺便说一句,你如何使用多少线程?是否有一些拇指规则?).
所以我不明白,我是否应该使用:
ExecutorService executorService = Executors.newFixedThreadPool(n);
Run Code Online (Sandbox Code Playgroud)
然后保存它(例如在某些顶层IoC)并executorService在需要新的时候调用它Future?
是不是像ExecutorService我可以使用的默认Java内置,从而避免了ExecutorService初始化和维护的唠叨?
默认 Java 的内置 ExecutorService
ForkJoinPool.commonPool() -返回公共池实例。这个池是静态构建的;它的运行状态不受尝试 shutdown() 或 shutdownNow() 的影响。然而,这个池和任何正在进行的处理都会在程序 System.exit(int) 时自动终止...
Future<?> future = ForkJoinPool.commonPool().submit(() -> { /* something to do */}) ;
Run Code Online (Sandbox Code Playgroud)
但还有一种更现代的方式:CompletableFuture
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> { /* something to do */});
Run Code Online (Sandbox Code Playgroud)
是不是有一个默认的 Java 内置 ExecutorService 我可以使用...?
Java8中有。
阅读 的 Javadoc java.util.concurrent.CompletableFuture.supplyAsync(...)。
| 归档时间: |
|
| 查看次数: |
2096 次 |
| 最近记录: |