草庐IT

threadPoolExecutor

全部标签

ThreadPoolExecutor线程池内部处理浅析

我们知道如果程序中并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束时,会因为频繁创建线程而大大降低系统的效率,因此出现了线程池的使用方式,它可以提前创建好线程来执行任务。本文主要通过java的ThreadPoolExecutor来查看线程池的内部处理过程。1ThreadPoolExecutorjava.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,下面我们来看一下ThreadPoolExecutor类的部分实现源码。1.1构造方法ThreadPoolExecutor类提供了如下4个构造方法//设置线程池时指定核心线程数、最大线程

android - 帮助调试 Android/Eclipse 中的线程 (AsyncTask) RuntimeException 原因

我有几个AsyncTask工作线程,在运行期间,其中一个在Eclipse中显示为“异常RuntimeException”。我无法找出异常的原因,甚至无法找出正在运行的线程/代码。我只看到线程11,AsyncTask#2。在下面,它说:Thread.run()line:1096ThreadPoolExecutor$Worker.run()line:561ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)line:1086这些都没有提示是什么代码导致了异常。我检查了变量,但我也没有看到任何提示。我也没有在我的LogCat中看到任何

android - 找不到 URI 的持久权限授予

我正在使用Intent操作ACTION_GET_CONTENT。Intentintent=newIntent(Intent.ACTION_GET_CONTENT);intent.setType("image/*");startActivityForResult(i,3);我需要使用onActivityResult中的URI来复制用户选择的图像并压缩复制的图像。但即使在onActivityResult中使用takePersistableUriPermission(uri,Intent.FLAG_GRANT_READ_URI_PERMISSION)获得uri权限后,我仍收到此错误。这在我使

android - 在 Android 中有效地缓存数据上传

我在Android中实现了一个队列服务,它会根据队列和wifi/数据连接事件更改状态。我将要发布到远程URL的事务排队。如果设备有数据或wifi连接,它将迭代队列并将数据发送到url,直到队列为空,或者有断开连接事件。我可以登录到我的应用程序,启用飞行模式,生成数据,关闭飞行模式,并发布交易。即使有数千笔交易,也不会放慢速度。(我想把它弄脏一点)输入:低接收!当3G接收信号很低时,我的应用程序速度会大大降低。(是的,所有上传都是在ui线程之外进行的。)似乎这种速度变慢的原因与向服务器发送邮件需要很长时间才能发生,有时甚至会失败有关。我的问题是,我该如何解决这个问题?检查信号质量?轮询已

android - 获取奇怪的 Nullpointer Exception ProGuard

致命异常:java.lang.NullPointerExceptionatcom.x.c.l.d(ProGuard:713)atcom.x.c.e.c(ProGuard:161)atcom.x.b.a.a(ProGuard:41)atcom.x.b.a$1.run(ProGuard:646)atcom.x.c.o$1.run(ProGuard:110)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)atjava.util.concurrent.ThreadPoolExecu

Android - 暂停所有线程花费了 : * ms

即使在我离开应用程序一段时间后,我的logcat中仍会出现这些警告。(虽然没有杀死,只是按回去离开它。)05-0313:43:42.95513047-13053/packageW/art:Suspendingallthreadstook:7.873ms05-0313:44:32.45813047-13053/packageW/art:Suspendingallthreadstook:13.441ms05-0313:46:58.58413047-13053/packageW/art:Suspendingallthreadstook:34.462ms05-0313:47:00.574130

android - 使用 Android SDK 3.0 的 Facebook 登录导致 ANR 或根本不工作

为了让用户在Android应用程序中登录Facebook,我尝试使用以下代码。用户登录后,应获取他们所有friend的位置。不幸的是,这段代码有时会导致ANR(如GooglePlay开发者控制台中所报告的那样),有时甚至无法正常工作。如果我在Facebook中删除应用程序(撤销权限),权限对话框将在下次启动Android应用程序时再次显示。但是,如果该应用程序已经拥有权限,它会导致这些ANR或只是没有成功地退出。似乎部分工作正常,部分错误,不是吗?以下代码是登录和获取数据的正确方法吗?packagecom.my.application;importjava.util.Arrays;im

android - 当我使用 android.test.purchased 进行购买时,Google Play 服务停止工作

BundlebuyIntentBundle=inappService.getBuyIntent(3,this.getPackageName(),"android.test.purchased","inapp","myUserId");intresponseCode=buyIntentBundle.getInt("RESPONSE_CODE");if(responseCode==0){PendingIntentpendingIntent=buyIntentBundle.getParcelable("BUY_INTENT");this.startIntentSenderForResult(

android - 我可以在单个进程应用程序中运行多少个 AsyncTasks

我正在使用asyncTasks来加载带有图像的列表元素(只是遵循了android的有效加载位图教程)在DDMS中,我最多可以看到5个AsyncTasks正在运行现在我还添加了另一个AsyncTask,它使用MediaCodec类执行一些解码。现在在DDMS中,我仍然看到5个AsyncTasks,并且我的图像加载ynctask或解码异步任务执行,而不是两者都执行。当解码运行时,如果我滚动列表,元素的图像不会更新相反,当我通过调用它的执行方法启动新的解码异步任务时,解码不会开始,但如果我现在滚动ListView,图像就会更新。那么AsyncTask是有限制的吗??即使在listAdapte

android - 当应用程序使用列表时避免 Android 4.4 中的 RejectedExecutionException

在Android4.4中,代码似乎发生了变化,导致使用AsyncTasks加载列表图标。结果是我的许多Android4.4用户都收到RejectedExecutionException,因为超出了队列大小限制。一个聪明的用户CodeGoogle发现了这一点,并以这种方式解释:ResolverActivitywillthrowRejectedExecutionExceptiononAndroid4.4.IviewedthecodeoflatestResolverActivityandnoticedthatinResolveListAdapter.bindViewmethoditisusi