问题标签 [scheduledexecutorservice]

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.

0 投票
1 回答
162 浏览

java - 我怎样才能给出关于使用什么时间单位的“提示”?

我有一个通过预定执行器安排任务的课程。
我希望类在TimeUnit. 我的意思是我希望能够为线程池构建具有延迟等的类,以及一种指定TimeUnit例如秒/毫秒/分钟等的方法。
使用String参数然后执行:


这里的唯一方法还是有另一种方法?

0 投票
1 回答
560 浏览

jsf - 显示来自托管 bean 的内部类的消息

我已使用讨论中描述的解决方案将 BackgroundJobManager 实现为我的 JSF bean 类中的内部类。我还创建了一个 ABCTask(也是一个内部类)作为一个线程,它将在 BackgroundJobManager 的预定时间运行。我需要将消息推送到 JSF 页面,但是从任务类 ABCTask 执行此操作会导致 NPE。同样的事情适用于外部 bean,所以我相信这与这个内部类和 bean 的上下文有关。如果有人知道解决方案,将不胜感激。

我的内部类代码如下:

$printTimeoutMessage() 如下:

0 投票
3 回答
6220 浏览

java - 如何使用 ScheduledExecutorService 实现固定速率轮询器?

给定以下课程:

核心线程池大小为 4 ,ScheduledExecutorService但会创建多个轮询线程吗?既然this被传递到scheduleAtFixedRate,这是否意味着只会有一个线程 - 或者在幕后发生更复杂的事情?

还有 2 个奖励问题:-

  1. 应该runningstatic
  2. CORE_POOL_SIZE多余的吗?
0 投票
1 回答
81 浏览

concurrency - 具有调用限制的单线程 ScheduledThreadPoolExecutor

我想利用 java.util.concurrent.Executors 来解雇一些跑步者。问题是我想按固定次数发射它。将这些跑步者称为固定费率很重要。

对我来说,使用 Executors#newSingleThreadScheduledExecutor 就足够了,所以我想知道为什么这是不可能的......

谢谢

0 投票
2 回答
2641 浏览

java - ScheduledExecuterService.scheduleAtFixedRate 创建多个线程池 - Android

我在我的 Android 应用程序中有一个AsyncTask调用UploadManager,它检查已处理的项目,并将它们上传到服务器。
为此,我使用ScheduledExecutorService.scheduleAtFixedRate1 分钟后检查项目,并将它们上传到服务器。
但是,有时会创建多个线程池(这种情况大约有 10% 的情况发生),因此有时会向服务器发送两次相同的请求,尽管这种并发性是在服务器和客户端级别处理的,但我仍然不希望这种情况发生在客户端。
下面是代码的样子。
在 MainActivity (start-activity) 中,我将 UploadManager 启动为:

UploadManager工作方式如下:

当我检查日志时,它说:

这清楚地表明现在有多个线程池,因此,uploadAcknowledgement()方法被多次调用。

MainActivity 在 AndroidManifest.xml 中声明为:

0 投票
3 回答
4775 浏览

java - 如何将参数传递给 ScheduledThreadPoolExecutor?

我如何将参数传递给 ScheduledThreadPoolExecutor?

我有以下代码。你会注意到我已经声明了一个变量'num',它作为一个参数传递给了exampleFunction()。exampleFunction 包含一个 ScheduledThreadPoolExecutor。我希望能够在 public void run() 中使用变量“num”。有什么办法可以做到吗?

0 投票
1 回答
1284 浏览

java - ScheduledExecutorService 使用和清理锁定的socket instream

这个问题的动机 我正在运行一个在非常昂贵的硬件上运行的巨大产品。出于测试目的而关闭它是不可能的,也不可能在生产环境中放置一个坏 jar。我需要尽可能确定,几乎可以确保我不会把生产环境搞得一团糟。

在我在登台设置上运行它之前,我需要检查下面的代码是否存在明显的问题(这同样昂贵)。

问题 我有一个基于套接字的应用程序,有时客户端不会显式发送 CloseConnection 请求。有时 IOException 不会发生,因为阻塞readObject调用阻塞了线程。

我需要通过在超时后关闭连接来关闭这个线程。如果我从服务器收到新请求,则会刷新超时。

所以你会在下面看到 3 个部分

  • 初始化
  • while(true) 循环中的 readObject 调用,以及计划的服务重置
  • 内流的实际关闭

代码

有人建议我使用 ScheduledExecutorService 而不是 Timer/TimerTask。

编辑:刚刚测试了一个较小的应用程序,它似乎工作。我仍然需要你的反馈。

再次编辑:

我根据建议修改了下面的代码。

初始化

删除了此代码

在 readObject 前后替换

清理时

0 投票
1 回答
525 浏览

java - ScheduledExecutorService 作为超时显示没有 AlertDialog

我正在尝试在我的应用程序中实现超时行为。在超时实际发生前 5 秒还应该有一个警告 (alertdialog)。

我想使用 ScheduledExecutorService 来做到这一点。

到目前为止,这是我的相关代码:

以及处理超时行为的方法:

在 onCreate() 中调用 setTimeout,因此应用程序应该在启动后 5 秒断开连接。

这是我面临的问题:

  • 如果“setTimeout”中调用的runnable设置为“disconnectRunnable”,它工作正常,应用程序在5s后断开连接。

  • 当我将其设置为“timeoutRunnable”时,不会显示 alertDialog + 应用程序永远不会断开连接,即使应该在“showTimeoutAlertDialog”中 5 秒后调用“disconnectRunnable”!?

我认为 ScheduledExecutorService 在这里出了问题,但我找不到解决方案。

感谢您的帮助 :)

0 投票
1 回答
184 浏览

java - 覆盖计划任务

除非被新的计划任务覆盖,否则如何在 x 秒后执行任务?

场景是我想在用户输入完我的 JTextField 后 1 秒执行一个任务。为此,我需要安排任务,并在每次“文档”更改时重新安排。

我尝试使用 a ScheduledExecutorService,但调度只是将任务添加到列表中,而不是取消上一个任务。

这是我希望它去的地方:

0 投票
1 回答
145 浏览

java - ScheduledExecutorService 中终止的任务会发生什么?

我目前正在修改应用程序以使用 ScheduledExecutorService 代替 Timer,但我不知道如何处理旧的Timer.purge().

Executor 是如何处理事情的?我需要担心什么吗?