-
43 votes6 answers264 views
使用LinkedBlockingQueue的ExecutorService与ThreadPoolExecutor
我正在开发一个多线程项目,我需要生成多个线程来测量我的客户端代码的端到端性能,因为我正在进行负载和性能测试 . 所以我创建了以下使用 ExecutorService 的代码 . 以下是 ExecutorService 的代码: public class MultithreadingExample { public static void main(String[] args) throw... -
0 votes1 answers1674 views
ExecutorService公平
我有这样的ExecutorService ExecutorService executor = new ThreadPoolExecutor(threads, threads, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(1000, true)); 我正在用.execute(... -
17 votes4 answers665 views
Java BlockingQueue与批处理?
我对与Java BlockingQueue相同的数据结构感兴趣,但它必须能够批处理队列中的对象 . 换句话说,我希望 生产环境 者能够将对象放入队列,但是在 take() 上使用消费者块,直到队列达到一定的大小(批量大小) . 然后,一旦队列达到批量大小, 生产环境 者必须阻止 put() 直到消费者已经消耗了队列中的所有元素(在这种情况下, 生产环境 者将再次开始 生产环境 并且消费者块直到再次... -
17 votes5 answers1748 views
是否可以向ThreadPoolExecutor的BlockingQueue添加任务?
用于ThreadPoolExecutor的JavaDoc不清楚是否可以将任务直接添加到支持执行程序的 BlockingQueue . The docs say调用 executor.getQueue() 是"intended primarily for debugging and monitoring" . 我正用自己的 BlockingQueue 构建一个 ThreadP... -
2 votes0 answers629 views
Java BlockingQueue Consumer Multithread notworking
我使用BlockingQueue实现了 生产环境 者消费者问题 . 在此, 生产环境 者以不同的间隔将一些任务发布到阻塞队列,并且多个消费者将该任务用于处理它 . 我的 生产环境 者代码工作正常,但我的消费者对象抛出错误 . 我是多线程的新手 . 我会感谢你的帮助 . 制片人 public class Producer_Events implements Runnable{ private ... -
1 votes3 answers186 views
增加线程数量会使 生产环境 者消费者的问题变得更快吗?
我使用无界链接阻塞队列实现了类似于消费者 - 生产环境 者问题的东西 . 我让 生产环境 者把对象放到队列中,消费者把它拿走 . 当我测试程序时,每次试验的线程数增加一倍,同时仍然处理相同数量的对象,所有试验的时间似乎是不变的 . 这是假设是不变的吗?或更多线程意味着更快的处理?不确定是否是我的代码导致共享资源的缓慢或同步 . 有任何想法吗? -
1 votes1 answers1579 views
完整队列上的java blockqueue使用者阻止
我正在编写一个小程序,将Twitter公共流中的推文放入HBase数据库 . 该程序使用两个线程,一个用于收集推文,另一个用于处理它们 . 第一个线程使用twitter4j StatusListener来获取推文并将它们放入容量为100的ArrayBlockingQueue中 . 第二个线程从队列中获取状态,过滤所需的数据并将它们移动到数据库 . 处理需要比收集状态更多的时间 . 制片人看起来像这... -
3 votes3 answers977 views
在Java中实现多个使用者多 生产环境 者的问题
我用一个阻塞队列编写了一个简单的消费者 - 生产环境 者问题,该队列有多个 生产环境 者和多个消费者接受并将整数放在队列中 . 但是,当我尝试测试它时,结果并不理想,例如队列的大小不正确 . 我不认为消费者和 生产环境 者规模正在同步 . 此外,我对 生产环境 者和消费者都进行了2秒钟的睡眠,但在测试时,每两秒就打印出2个 生产环境 者和2个消费者的结果 . 有谁知道我做错了什么?也许我开始错误... -
0 votes1 answers1686 views
阵列阻塞队列,容量为1错误的行为 生产环境 者消费者
我使用容量为1的阻塞队列产生了以下 生产环境 者消费者问题 . 因此, 生产环境 者只能生成一个项目,但运行代码生成器可以生成2个项目,即使队列为空,消费者也可以使用 . 请帮我解决这个奇怪的行为,因为我这个错误的行为 . 如果队列为空, 生产环境 者应该阻止 . import java.util.concurrent.BlockingQueue; import java.util.concurr... -
1 votes1 answers683 views
Java - 单线程执行程序
我有多个 生产环境 者和单个消费者的阻塞队列(足以进行项目的后期处理) . 生产环境 者按计划开始,将任务发送到执行程序池,然后由工作人员将任务添加到队列中 . 关于如何启动消费者线程的问题? 现在我有@EventListener(SpringBoot),它发送启动到singleThreadExecutorPool方法,该方法在无限循环中为队列服务,对于这种情况可能存在更好的解决方案 . 看起来像... -
6 votes3 answers1669 views
C pthread阻塞队列死锁(我认为)
我遇到了pthreads的问题,我认为我遇到了僵局 . 我创建了一个我认为正在工作的阻塞队列,但在做了一些测试之后我发现如果我尝试取消阻塞在blocking_queue上的多个线程,我似乎陷入了僵局 . 阻塞队列非常简单,如下所示: template <class T> class Blocking_Queue { public: Blocking_Queue() { ... -
9 votes3 answers164 views
生产环境 者/消费者工作队列
我正在努力实现我的处理管道的最佳方法 . 我的制作人将作品提供给BlockingQueue . 在消费者方面,我轮询队列,包装我在Runnable任务中获得的内容,并将其提交给ExecutorService . while (!isStopping()) { String work = workQueue.poll(1000L, TimeUnit.MILLISECONDS); if... -
62 votes6 answers462 views
阻塞队列和多线程消费者,如何知道何时停止
我有一个单线程生成器,它创建一些任务对象,然后添加到 ArrayBlockingQueue (具有固定大小) . 我也开始了一个多线程的消费者 . 这是一个固定的线程池( Executors.newFixedThreadPool(threadCount); ) . 然后我向这个threadPool提交了一些ConsumerWorker入口,每个ConsumerWorker都对上面提到的ArrayB...