Rol*_*and 13 java multithreading asynchronous future executorservice
该ExecutorService的有以下方法:
但是,由于这种Future的get方法将总是返回null不会以下签名更合适?
Future<Void> submit(Runnable task)
Bur*_*dız -1
因为ExecutorService的Future接口是为了从另一个线程获取返回数据而创建的,而不是仅仅为了运行它。
Future<Void> submit(Runnable task)与 的工作方式相同,对于某些情况,new Thread(runnable).start()返回是有意义的。null
编辑:
认为您需要在 20 分钟后关闭线程。当你有返回值时你会怎么做void?
Future<Void> future = execService.submit(operation);
execService.shutdown();
opResult = future.get(20, TimeUnit.MINUTES);
Run Code Online (Sandbox Code Playgroud)
这段代码一定会报错,因为future. 但如果它返回 null,execService控制器对象就会知道shutdown发生了这种情况。或者如果 20 分钟内没有返回任何内容,execService.shutdownNow()则可以使用。
| 归档时间: |
|
| 查看次数: |
2022 次 |
| 最近记录: |