问题标签 [futuretask]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用阻塞 API 时的 Java 异步编程
我正在开发一个使用某些阻塞 API 的 Java 项目。
我想使用异步编程和回调,这样我就不必在等待结果时阻塞。我已经研究过使用 Java Future
,但我认为我可以使用它的唯一方法是调用get()
会阻塞的方法。我也愿意使用其他方式进行异步编程。
我当前的代码如下所示。
如果我要使用Future
,我会这样做。但我的理解get()
是阻塞。
我怎样才能实现这一点,以便函数get()
基本上由回调处理,当结果可用时自动调用该回调?
java - 当未来的一项任务有预期结果时继续
我有 3 个FutureTask<T>
对象。我希望它们被异步处理。但是,一旦 FutureTasks 的get()
方法之一没有返回null
,我想继续,即我的方法(包装器)返回并且不等到其他两个 FutureTasks 被处理。我想到了类似的东西:
我不确定如何以适当的方式捕获异常(由 get() 抛出),因为我假设它们会被抛出,因为我只是返回而不等待其他两个任务完成。此外,我怀疑代码是否会按预期工作。我觉得我接近解决方案但缺少一些东西。
java - 遍历列表对象抛出 IndexOutOfBounds 异常
我有一个 ExecutorService 用于调用 Callable 对象的集合并返回与集合中的 Callable 元素相对应的 Future 对象列表。
但是,在遍历列表的某个地方,它会引发以下异常:
我一直在执行的代码是
它给了我future.get()
在线错误。
请帮助解决障碍或让我知道我还能提供什么。
android-asynctask - Android 调用 AsyncTask().get() 而不执行 ()?
我在试图了解AsyncTask().get()
实际工作方式时遇到问题。我知道这是一次执行,synchronous
但是:我不知道如何连接。我有来自 Google 文档的示例代码:execute()
get()
现在,button.onClick()
我以 3 种方式称之为:
我很困惑到底是如何execute()
触发的,然后如果被调用doInBackground()
则立即返回,而对任何东西都没有影响。get()
get()
doInBackground()
android - 如何在单击按钮时取消 ExecutorService 的任务?
我有一个用户可以点击下载的项目列表。我有这个代码:
当用户通过调用 tasks.get(key).cancel(true); 点击取消时,我试图取消相应的下载;
但我的任务并没有被取消。
几个问题:
通过维护适配器类中的未来对象列表,我做错了什么吗?
当用户单击按钮时,我应该如何取消任务?
另外我怎么知道任务已被取消?
我已经阅读了有关 ExecutorService 的信息,但我对实现有点困惑。
java - 使用 iText 将 TIFF 转换为 PDF 的多线程方法
我实际上是在尝试使用 itext 将 tiff 文件转换为 pdf,这相当简单。但据我TiffImage.getTiffImage
所知,执行较大的文件需要花费大量时间。
我的要求是使用FutureTask
并ExecutorService
提供多线程解决方案。这是我当前的代码:
并且转换方法是
但我得到了一个NullPointerException
at future.get()
。问题是执行没有等待 TiffImage.getTiffImage(tiffFile, pageNo) 完成。因此我无法创建图像列表。任何帮助将不胜感激。
堆栈跟踪
java - 为什么我们可以分配 FutureTask反对未来多变的?
以下是Java Concurrency in Practice一书中让我感到困惑的片段:
如代码所示,f的类型是 Future 而ft的类型是 FutureTask。为什么我们可以将ft分配给变量f?
java - java 多线程 - 限制提交到 ExecutorService
我有一个包含数千行的数据文件。我正在阅读它们并将它们保存在数据库中。我想以 50 行的批次对这个过程进行多线程处理。正如我在文件中所读到的,有 10 行被提交给 ExecutorService。
我可以在一段时间循环中执行以下操作,直到我的行结束......
但是,如果处理 10 行需要时间,我不想将整个文件读入内存。我只想提交 5 个,直到其中一个线程返回,然后我提交下一个。
假设一个线程需要 20 秒来保存 10 条记录,我不希望它ExecutorService
被喂上千行,因为读取过程正在继续读取并提交给 ExecutorService
实现这一目标的最佳方法是什么?
java - 为什么 ThreadPoolExecutor 的 afterExecute() 异常为空?
我想处理ThreadPoolExecutor#afterExecute()
方法中工作线程抛出的异常。目前我有这个代码:
如果我运行代码,我会得到输出:
为什么参数Throwable t
null
在afterExecute()
?不应该是SQLException
实例吗?
java - 如何在 Java Spring 中使未来的任务线程原子(事务)
我正在尝试使每个线程都具有原子性。我已经尝试在执行方法之后使用代理注释来开始和结束事务,但它不起作用,而且我尝试在类级别和方法级别使用事务注释都不起作用。那么如何使线程原子化。
测试班/司机班
我的可调用实现
任务执行器代码
}
错误消息失败,因为不是活动事务。