futuretask相关内容
我编写了一个用于连接外部配件的蓝牙 API.API的设计方式是有一堆阻塞调用,例如getTime、setTime、getVolume、setVolume 等这些工作的方式是创建一个有效负载来发送和调用一个名为 sendAndReceive() 的方法,该方法执行一些准备工作并最终执行以下操作: byte[] retVal = null;BluetoothSocket socket = getSo
..
在发现 FutureTask 在 Java 1.6(和来自 Eclipse)上的 Executors.newCachedThreadPool() 中运行后吞下了 Runnable.run() 方法,我试图想出一种方法来捕获这些,而无需将 throw/catch 添加到我所有的 Runnable 实现中. API 建议重写 FutureTask.setException() 应该有助于此:
..
我正在寻找一种方法的结果,该方法可能需要一段时间才能完成,并且实际上并未返回该对象,因此我想尽可能有效地对其进行处理.这是我要实现的目标的一个示例: public static void main(String [] args){对象obj = someMethod();System.out.println(“对象为" + obj +“,呜!");}公共无效的callObject(){//发送
..
我很高兴地调用了computeParallel()函数,该函数正在调用3 Futures F1,F2,F3并返回String作为返回类型. def computeParallel():String = { val f1 = Future { "ss" } val f2 = Future { "sss" } val f3 = Future { "ssss
..
我有一个ExecutorService,用于调用Callable对象的集合,并返回与该集合中Callable元素相对应的Future对象的列表. 但是,在遍历列表的某个地方,它将引发以下异常: java.util.concurrent.ExecutionException: java.lang.IndexOutOfBoundsException: Index: 7, Size: 1 a
..
我正在使用Java计划系统,该系统基于 startDate , endDate 和发生(每小时,每天)发出提醒,每周,每月,星期一等).最初,我是使用 Timer 和 TimerTask 类来安排提醒的时间: Timer timer = new Timer(); timer.scheduleAtFixedRate(reminder, firstDate, period); 我最近切换到了
..
我已经检查了Oracle Java API,该API提供了一些信息,但是我需要检查任务是否已完成或终止并出现任何错误. 即使完成/终止,isDone()方法也将返回.但是我需要知道它是否由于某些问题而完成或终止. 解决方案 如果完成FutureTask,请调用 ExecutionException-如果计算引发异常 ExecutionException.getCause()将返回任
..
new Thread(new Runnable() { public void run() { ............. ............. ............. } }).start(); 如果我主要执行此操作,它将创建一个新线程并向其提交任务以
..
我只是在探索java.util.concurrent包. 我了解到,"未来"类具有方法布尔值取消(布尔值mayInterruptIfRunning) 请在附件中找到我编写的测试代码: package com.java.util.concurrent; import java.util.concurrent.Callable; import java.util.concurren
..
需要确认一些事情。以下代码: CompletableFuture .supplyAsync(() - > {return doSomethingAndReturnA();}) .thenApply(a - > convertToB(a)); 与以下内容相同: CompletableFuture .supplyAsync(() - > { A a =
..
我们正在使用 Future 并超时完成任务。当时间限制超过时,我们得到 TimeOutException 。从线程转储的行为,我意识到底层线程仍在继续。 是这样的吗?如何处理漫游的多线程? 如果从池中删除的线程没有抛出 IOException 怎么办? 如果这样是的, kill 底层线程的方法是什么。在我的情况下,它一直在等待外部 IO 。 线程转储的一部分: 线程295
..
我需要安排一些将来要完成的工作。我可以通过两种方式实现: 创建 TimerTask 并且执行 timer.schedule(...); 使用执行人员。 newScheduledThreadPool(1): ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); ScheduledFu
..
我有一个singleThreadExecutor,以便按顺序执行我提交给它的任务,即一个接一个的任务,没有并行执行。 我已经运行了类似这样的事情 MyRunnable实现Runnable { @Override public void run() { try { Thread.sleep(30000); } catch(InterruptedException e1)
..
我对执行者服务很陌生。喜欢自己做所有事情,但我认为是时候相信这些服务了。 我想交出 Executer a 可运行。执行者将它包装在 FutureTask 中并将其交还给我。现在我调用 done()方法调查。但是我希望在 done()方法返回true时收到通知。 有一个 get()阻塞直到 Runnable 完成的方法,但是我需要为每个作业添加一个额外的线程,只是为了看看它什么时候结束。
..
我将 Callable 对象提交到 ThreadPoolExecutor ,它们似乎在内存中存在。 使用MAT工具查看堆转储,看到 Callable 对象被 FutureTask $ Sync 的可调用变量。那个 FutureTask $ Sync 由 FutureTask 的 sync 变量引用。那个 FutureTask 被 FutureTask $ Sync 的这个$ 0 变量引用。
..
我需要创建一个库,其中包含同步和异步方法。 executeSynchronous () - 等到我有结果,返回结果。 executeAsynchronous() - 返回如果需要的话,可以在完成其他事情后立即处理的未来。 我的图书馆的核心逻辑 客户将使用我们的库,他们将通过传递 DataKey 构建器对象来调用它。然后,我们将使用该 DataKey 对象构造一个URL,并通过执
..
由于使用 ExecutorService 可以提交 a 可调用任务并返回 Future ,为什么需要使用 FutureTask 来包装 Callable 任务并使用方法执行?我觉得他们都做同样的事情。 解决方案 事实上你是对的。这两种方法是相同的。您通常不需要自己包装它们。如果你是,你可能会复制AbstractExecutorService中的代码: / ** *返回
..
在下面的代码中,我按照预期在100秒后捕获TimeoutException。在这一点上,我希望代码退出main和程序终止,但它继续打印到控制台。如何在超时后让任务停止执行? private static final ExecutorService THREAD_POOL = Executors.newCachedThreadPool(); private static T
..
我经常搜索,但找不到解决问题的方法。 我有自己的类 BaseTask ,它使用 ThreadPoolExecutor b来处理任务。 如果我不想确定优先级(即使用 LinkedBlockingQueue ),这个工作正常,但当我尝试使用 PriorityBlockingQueue 我得到 ClassCastException 因为 ThreadPoolExecutor 包裹了我的任务到
..
我需要找到一种从Future到ListenableFuture的转换方式。 目前我使用一个返回Future的服务,但我需要连接一个监听器。 我不能更改服务接口,因为它不属于我。 有简单的方法吗? 我已经读过番石榴文件,但仍然找不到办法。 解决方案 Guava为此转换提供 JdkFutureAdapters 类型。 API 说明 使用提供纯文本的库所需的实用程序 未来
..