【发布时间】:2012-09-03 09:45:34
【问题描述】:
我想在 Java 中使用并发向在线 API 发出请求,下载并解析响应文档,并将结果数据加载到数据库中。
每个线程都在其中请求、解析和加载的线程池是标准的吗?换句话说,只有一个类实现了Runnable。或者说,拥有三个不同的线程池是否更有效,第一个线程池发出请求并将它们推送到队列,第二个线程池从第一个队列轮询,解析并推送解析的数据到第二个队列,最后是第三个池从第二个队列轮询数据并加载到数据库中?在这种情况下,我会编写三个不同的类来实现Runnable。
【问题讨论】:
-
使用流水线模型(即三个池),您可能必须找出池大小的最佳比例,或者动态调整池大小以确保它们是平衡的。即,您需要问自己诸如“如果我有 10 个并发‘下载’线程,我需要多少并发‘解析’线程来确保下载解析队列保持或多或少的恒定大小? i>"
标签: java multithreading concurrency runnable threadpool