问题标签 [threadpoolexecutor]

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 回答
627 浏览

android - 在 ThreadPoolExecutor 中运行 AsyncTask<> 效率高吗?

我想实现这样的任务:在后台(当应用程序在后台时)为用户寻找新数据并发出通知。我必须定期执行此操作(每 2-3 秒)。有不同的数据,因此我为此使用不同的方法(FetchImages、FetchMessages、FetchNewConversations 等)据我所知,在 Android 4 中,所有网络操作都必须在背景线程,所以我将所有这些操作实现为从 AsyncTask 继承的类,然后调用它们我只写FetchImages.execute ()但是活动只执行一次,所以我决定通过 ScheduledExecutorService这样的方式调用它们:

那么问题是这是一个好主意还是存在更好,更有效的解决方案?提前致谢!

0 投票
1 回答
1120 浏览

android - AsyncHttpClient 与 ThreadPoolExecutor 知道所有任务何时完成?

AsyncHttpClient用来获取一些 JSON。我的方法将解析 JSON 并触发另一个 get 请求,所以我实际上不知道有多少线程正在运行。经过一番搜索,我想我可以ThreadPoolExecutor知道我所有的线程何时完成,所以我可以写入数据库。如果我正在使用,执行者如何知道我提交了工作AsyncHttpClient.get()

0 投票
1 回答
1791 浏览

android - RejectedExecutionException 使用 ThreadPoolExecutor 和 AndroidHttpClient

我正在使用自己的 ThreadPoolExecutor 来了解我的所有任务何时完成。我有一个方法是 client.get() 调用,如果成功,它会做更多的 client.get() 调用。但是,java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@414ca470 rejected from java.util.concurrent.ThreadPoolExecutor@414ab1a0[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1]当我从我的第一次成功中调用 client.get() 时,我得到了。我该如何解决这个错误?

parseSilo 方法

0 投票
6 回答
30352 浏览

java - ThreadPoolExecutor :任务正在排队并且未提交

我们有一个场景,提交给 ThreadPoolExecutor 的任务长时间运行。当线程池启动时,我们以核心池大小 = 5、最大池大小 = 20 和队列大小 10 启动它。在我们的应用程序中,大约有 10 个任务被提交。大多数情况下,这些任务运行几分钟/小时,然后完成。然而,有一种情况是所有 5 个任务都挂在 I/O 上。结果,我的核心池大小达到了最大值,但我的 Threadpoolexecutor 队列未满。所以额外的 5 个任务永远没有机会运行。请建议我们如何处理这种情况?在这种情况下有一个较小的队列更好的选择吗?初始化线程池时,最佳队列大小是多少?

另外关于挂起的任务,有什么办法可以将线程从线程池中拉出来?在这种情况下,至少其他任务将有机会运行。

0 投票
1 回答
3431 浏览

java - Android 并行(同步)图像下载

请各位大侠帮忙,这很重要。

我需要在不到 5 分钟的时间内下载大约 2000 张图像。所以我决定进行并行图像下载。

如果有人可以建议我进行并行下载的更好方法或告诉我哪里出错了,我将不胜感激。

在错误日志中,已完成任务的数量总是不同的......

请帮忙。

我正在使用 Artem Zinnatullin 的异步任务执行器

}

然后我使用循环来下载我所有的图像。

下载方法如下所示:

当启动我的android应用程序时,我收到了这个错误

0 投票
1 回答
445 浏览

java - 零是 Android 中 ScheduledThreadPoolExecutor 的有效 corePoolSize 吗?

文档说如果 corePoolSize 小于零,构造函数会抛出 IllegalArgumentException。这表明零是一个有效值,这意味着不在池中保留任何空闲线程。这在实践中真的有效吗? 这个非 Android 特定的问题表明,这将导致永远不会创建线程,也不会执行任何计划任务。

0 投票
2 回答
7151 浏览

java - 如何获取当前正在运行的线程

我正在使用 ThreadPoolExecutor 来启动处理来自阻塞队列的请求的线程。如果队列为空,则所有这些工作线程都在等待。这使得该池中的每个线程都处于等待状态。

我还在预定的执行程序下启动,它试图在上述池中获取当前活动线程,当它为 0 时,它会关闭池:

问题是 10 秒后,调度程序线程获取 activeThreadCount=0 并因此关闭池。

我们知道:

getActiveCount():返回正在主动执行任务的线程的大概数量。

这可能无法给出处于活动状态的线程的准确数量。

无论如何我是否知道我来自第一个池的所有线程是否都处于等待状态?

0 投票
2 回答
2593 浏览

android - Android - 用户登录认证过程中的 Asynctask 和 ThreadPoolExecutor 异常

在 LoginActivity 类中,我使用 Asynctask 类对获取的电子邮件地址和密码进行身份验证。

这是调用尝试登录函数的主要活动类,该函数又将控制权传递给扩展了 Asynctask 类的 UserLoginTask 类,以对用户进行身份验证。

但是执行总是在之后停止,Log.d(TAG, mUsername+ "--" + mPassword);并为 ThreadPoolExecutor 抛出异常。

我是android开发的新手,所以请帮助我理解代码中的问题。

这是用于身份验证的功能

抛出的异常是,

并打开此 ThredPoolExecutor 选项卡,显示

0 投票
1 回答
364 浏览

java - 预定执行者准确性

我在 java 中的 ScheduledExecutorService 有问题(几天前我没有遇到这个问题,这让我觉得很奇怪)。请找到下面的代码和控制台输出。重复执行任务之间的延迟是 1 毫秒,所以理想情况下我应该达到每秒 1000 的计数(给或需要几毫秒),但这只是没有发生。请帮忙..

代码:

控制台输出

1000 2013 年 3 月 13 日 14:43:54.477 2000 2013 年 3 月 13 日 14:44:10.296 3000 2013 年 3 月 13 日 14:44:26.381 4000 2013 年 3 月 13 日 14:44:42.621 5000 2013 年 3 月 13 日14:44:55.907 6000 2013 年 3 月 13 日 14:44:58.516 7000 2013 年 3 月 13 日 14:45:05.896 8000 2013 年 3 月 13 日 14:45:10.292 9000 2013 年 3 月 13 日 14:00:15.129 10 2013 年 3 月 13 日 14:45:18.187

谢谢, 阿比纳夫

0 投票
3 回答
12659 浏览

java - 具有无界队列的 ThreadPoolExecutor 不创建新线程

ThreadPoolExecutor无法创建新线程。事实上,我写了一个有点骇人听闻LinkedBlockingQueue的东西,它可以接受任何任务(即它是无界的),但调用了一个额外的处理程序——在我的应用程序中它会发出池在后面的警告跟踪——这给了我非常明确的信息,表明 TPE 拒绝创建即使队列中有数千个条目,也会有新线程。我的构造函数如下:

为什么它不创建新线程?