13得票3回答
Java(Android)多线程处理

我正在开发一个应用程序(Matt's traceroute Windows版本http://winmtr.net/),它创建多个线程,每个线程都有自己的进程(执行ping命令)。ThreadPoolExecutor会在一段时间后(例如10秒)关闭所有线程。 ThreadPoolExecutor...

13得票4回答
ThreadPoolExecutor policy

我尝试使用ThreadPoolExecutor来调度任务,但在其策略方面遇到了一些问题。以下是它的声明行为: 如果运行的线程少于corePoolSize,则执行程序始终倾向于添加新线程而不是排队。 如果有corePoolSize或更多的线程正在运行,则执行程序始终倾向于将请求排队而不是添加...

13得票3回答
异步通知阻塞队列有可用项。

我需要一个对象在某个阻塞队列中有数据时异步地被通知。 我已经查看了Javadoc和网络上的预制解决方案,最终我想到了自己的一种(可能很朴素)的解决方案,下面是我的解决方案: interface QueueWaiterListener<T> { public void i...

11得票4回答
ArrayBlockingQueue使用一个锁来进行插入和删除,而LinkedBlockingQueue使用2个单独的锁。

我正在查看ArrayBlockingQueue和LinkedBlockingQueue的源代码。LinkedBlockingQueue针对插入和删除分别使用putLock和takeLock,但是ArrayBlockingQueue只使用一个锁。我认为LinkedBlockingQueue是基于...

11得票3回答
生产者/消费者工作队列

我正在努力寻找最佳方法来实现我的处理管道。我的生产者向BlockingQueue提供工作。在消费者方面,我轮询队列,在获取到的内容上包装一个Runnable任务,并将其提交给ExecutorService。while (!isStopping()) { String work = wo...

11得票7回答
我的传感器监测技术有什么问题?

(请阅读末尾的UPDATE 3)我正在开发一个应用程序,它不断使用设备的传感器,使用Accelerometer和Magnetic传感器来检索设备的方向(目的在此处提到here)。换句话说,我的应用程序需要实时知道设备的方向(但这是永远不可能的,因此尽可能快地进行,但真正尽可能快!)。如Reto...

11得票3回答
等待一个BlockingCollection队列被后台线程清空,如果等待时间过长,则设置超时时间?

在C#中,我想知道是否有可能等待直到一个BlockingCollection被后台线程清除,如果等待时间过长则设置超时。目前我所使用的临时代码让我感觉有些不够优雅(因为使用Thread.Sleep好像并不是一个好习惯):while (_blockingCollection.Count >...

11得票1回答
Android Looper和BlockingQueue有何区别?

有谁能解释一下为什么要使用Android Looper功能来创建“管道线程”,而不是创建一个从BlockingQueue中获取任务的普通线程呢?表面上看,这两种方法似乎可以达到相同的效果。

10得票2回答
使用BlockingQueue下载PDF文件

我正在尝试使用URLConnection下载PDF文件。以下是我设置连接对象的方式。URL serverUrl = new URL(url); urlConnection = (HttpURLConnection) serverUrl.openConnection(); urlConnecti...

9得票1回答
线程池执行器中的同步队列 (SynchronousQueue)

我正在尝试理解ThreadPoolExecutor中队列的行为。在下面的程序中,当我使用LinkedBlockingQueue时,我只能一次向线程池提交一个任务。但是如果我用SynchronousQueue代替LinkedBlockingQueue,我可以立即将所有5个任务提交到池中。在这种情...