- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Android 中,我试图启动一个线程,该线程会自行终止或在某个超时限制(例如 20 秒)后被执行程序取消?所以 runnable 只会在那么多秒内完成它的工作而不是取消...
我如何实现这一点?我目前正在按以下方式启动它。
Executors.newSingleThreadScheduledExecutor().schedule(myRunnable, 0, TimeUnit.MILLISECONDS);
我的可运行程序看起来像这样
static class MyRunnable implements Runnable {
MyRunnable(Helper _helper) {
helper = _helper;
}
public void run() {
}
}
最佳答案
如果您想停止已经提交给 ExecutorService
的任务,那么您需要处理 Future
对象。
喜欢这个答案:
Stop a Runnable submitted to ExecutorService
基本上,您将提交
一个Runnable并取回一个Future
对象,您可以使用它来取消它。
具体针对您的问题:在 20 秒内停止一个任务,您可以使用将 Future
对象从第一个任务切换到另一个任务,如下所示:
ExecutorService executor = Executors.newSingleThreadScheduledExecutor();
// Schedule your audio processing job like normal.
final Future<?> future = executor.submit(new MyAudioProcessingRunnable())
// Schedule the cancelation to happen in 20 seconds.
executor.schedule(new Runnable() {
if (!future.isCancelled() && !future.isDone()) {
// Cancel and interrupt any blocking calls.
future.cancel(true);
}
}, 20, TimeUnit.Seconds);
重要 - 您的 MyAudioProcessingRunnable
中必须有代码才能支持取消。
关于java - 如何使 newSingleThreadScheduledExecutor 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49502689/
在这篇文章中,我们将结合实例讨论Executors newSingleThreadScheduledExecutor()方法。 Executors.newSingleThreadScheduledEx
如果我为 ScheduledExecutorService 安排了多个任务,但我已经确定只能有一个线程来执行所有任务,每个任务会按顺序执行吗? 例如:在下面的场景中会发生什么 ScheduledExe
javadoc Executors.newSingleThreadScheduledExecutor 说“...返回的执行器保证不能重新配置以使用其他线程”。 上面这句话是什么意思?这是否意味着返回的
这个问题已经有答案了: ScheduledExecutorService, how to stop action without stopping executor? (2 个回答) 已关闭 6 年前
在 Android 中,我试图启动一个线程,该线程会自行终止或在某个超时限制(例如 20 秒)后被执行程序取消?所以 runnable 只会在那么多秒内完成它的工作而不是取消... 我如何实现这一点?
我的要求是制作一个服务,在特定时间间隔后继续检查队列并处理队列中的元素。 为了在 10 秒后安排任务,我使用: ScheduledExecutorService schd = Executors.ne
这个执行器有什么已知问题吗?还是我用错了?我需要安排上传在单独的线程,我希望在当前上传完成后的特定时间后触发下一次上传。 因此,我的服务实现中有一些代码摘录: ScheduledExecutorSer
如何在不使用 Executors.newSingleThreadScheduledExecutor 的情况下创建具有单线程的 ScheduledThreadPoolExecutor ? 我想这样做的原
我想知道 Executors 类的这两种方法有什么区别?我有一个 Web 应用程序,我每 100 毫秒检查一些数据,这就是为什么我将此调度程序与 scheduleWithFixedDelay 方法一起
我按照以下链接实现了单线程调度执行器 Link to example 我有点困惑为什么在 scheduleAtFixedRate 方法之后调用 schedule 方法。 这里使用schedule方法的
上下文: 这是一个 Jersey 应用程序 在 Tomcat 服务器上运行 使用 Hibernate 连接到 MySQL 数据库 一切都在 Netbeans 我正在创建一个 ScheduledExec
我是一名优秀的程序员,十分优秀!