0 0

<T> Future<T> submit(Callable<T> task);5

大家好,如题,又来麻烦大家了。今天写代码看到spring的一个接口里面的方法是这样声明的:
public interface AsyncTaskExecutor extends TaskExecutor 
{
<T> Future<T> submit(Callable<T> task);
}


没理解到第一个泛型<T> 是代表什么意思,难道<T> Future<T>代表返回值?。
2012年9月22日 16:50

1个答案 按时间排序 按投票排序

0 0

根据声明时类型推导

如 A a = future.get();

2012年9月22日 16:58

相关推荐

    3_AbstractExecutorService源码阅读1

    7. **`&lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task)`** 提交一个`Callable`任务并返回一个`Future`对象,这个对象代表了任务的结果。通过`Future`,我们可以检查任务是否完成,取消任务,或者获取任务的执行结果。 8. ...

    ExecutorService的execute和submit方法

    &gt; submit(Runnable task)`和`&lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task)`。这两种形式的主要区别在于,`Callable`任务可以有返回值,而`Runnable`任务没有。`submit()`方法会将任务提交到线程池,并返回一个`Future`...

    Java中Future、FutureTask原理以及与线程池的搭配使用

    3. `&lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task)`:直接将`Callable`包装为`FutureTask&lt;T&gt;`并执行。 `FutureTask`的实现包括了任务状态的管理、中断处理和异常传播等复杂逻辑,确保了异步任务的正确执行和结果获取。...

    简单谈谈ThreadPoolExecutor线程池之submit方法

    &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task); &lt;T&gt; Future&lt;T&gt; submit(Runnable task, T result); &lt;T&gt; Future&lt;T&gt; submit(Runnable task); ... } ``` 在 AbstractExecutorService 类中,实现了 submit 方法。 ```...

    java并发包之Callable和Future

    Future&lt;Integer&gt; future1 = threadPool.submit(new Callable&lt;Integer&gt;() { public Integer call() throws Exception { return computeSomething1(); } }); Future&lt;Integer&gt; future2 = threadPool.submit(new ...

    线程池的submit和execute的区别.md

    - **3.2.1** 对于需要等待任务完成并获取执行结果的场景,如异步计算任务,应优先考虑使用`submit(Callable&lt;T&gt; task)`方法。 - **3.2.2** 对于只需要异步执行但不关心执行结果的任务,可以使用`submit(Runnable task...

    AbrastractExecutorService

    - **submit(Callable&lt;T&gt; task)** - **描述**:提交一个返回值的任务用于执行,返回一个表示任务的未决结果的`Future`。 - **参数**:`task` - 要执行的任务。 - **返回**:表示任务等待完成的`Future`,其`get()`...

    java callable(多线程)

    Future&lt;String&gt; future1 = es.submit(new MyCallableClass(0)); System.out.println("task1:" + future1.get()); Future&lt;String&gt; future2 = es.submit(new MyCallableClass(1)); Thread.sleep(5000); System....

    Java中的Runnable,Callable,Future,FutureTask的比较

    Future&lt;Integer&gt; future = executor.submit(task); try { System.out.println("Task result: " + future.get()); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } finally { ...

    有返回值的线程

    Future&lt;Integer&gt; future = new FutureTask&lt;&gt;(new MyRunnable(future)); executor.execute(future); Integer result = future.get(); ``` 这里,`FutureTask`是一个实现了`RunnableFuture`接口的类,它可以作为`...

    java 多线程抓取去哪儿qunar机票数据

    &gt;&gt; futures = new ArrayList&lt;&gt;(); futures.add(executor.submit(task)); // 收集结果 for (Future&lt;?&gt; future : futures) { try { future.get(); // 获取结果,如果有异常,会在这里抛出 } catch ...

    Java FutureTask类使用案例解析

    FutureTask&lt;Integer&gt; futureTask = new FutureTask&lt;&gt;(new Callable&lt;Integer&gt;() { @Override public Integer call() throws Exception { log.info("inside callable future task ..."); return 1; } }); ...

    Java 中限制方法的返回时间最新方法.rar

    Future&lt;String&gt; future = executor.submit(new Callable&lt;String&gt;() { @Override public String call() throws Exception { // 耗时的方法 Thread.sleep(5000); return "Result"; } }); try { String result ...

    TaskProject.zip

    List&lt;Future&lt;String&gt;&gt; futures = new ArrayList&lt;&gt;(); for (int i = 0; i &lt; 10; i++) { final int taskId = i; Future&lt;String&gt; future = executor.submit(() -&gt; { // 执行任务并返回结果 return "Task " + ...

    java自定义任务类定时执行任务示例 callable和future接口使用方法

    Future&lt;String&gt; future1 = es.submit(task1); Future&lt;String&gt; future2 = es.submit(task2); Future&lt;String&gt; future3 = es.submit(task3); ``` `Future`对象提供了多种方法,如: - `get()`:阻塞直到任务完成,...

    lotus domino 多线程搜索多数据库内容

    List&lt;Future&lt;Object&gt;&gt; futures = new ArrayList&lt;&gt;(); for (String task : tasks) { MyCallable callable = new MyCallable(task, searchText); Future&lt;Object&gt; future = executor.submit(callable); futures.add...

    详细分析JAVA 线程池

    * &lt;T&gt; Future&lt;T&gt; submit(Runnable task, T result):将一个Runnable对象提交给指定的线程池,线程池将在有空闲线程时执行Runnable对象代表的任务。 * void shutdown():关闭线程池,停止接受新的任务提交。 7. 使用...

    浅谈在Java中使用Callable、Future进行并行编程

    Future&lt;Integer&gt; future = executorService.submit(task); // 提交Callable任务 System.out.println("主线程在执行其他任务..."); try { Thread.sleep(2000); } catch (InterruptedException e) { e....

    多线程执行完后主程序再执行(包括需要子线程返回结果)

    Task&lt;int&gt; task1 = Task.Run(() =&gt; { // 子线程1的代码,返回一个int }); Task&lt;int&gt; task2 = Task.Run(() =&gt; { // 子线程2的代码,返回一个int }); int result1 = await task1; int result2 = await task2; // ...

    批处理文件系统(java后端文件类IO流相关)

    List&lt;Future&lt;Void&gt;&gt; futures = new ArrayList&lt;&gt;(); for (File file : files) { Future&lt;Void&gt; future = executor.submit(new FileTask(file)); // 提交任务 futures.add(future); } executor.shutdown(); // 关闭...

Global site tag (gtag.js) - Google Analytics