Ago*_*eca 1 groovy multithreading constructor subclass
我收到以下错误:
找不到匹配的构造函数:org.crawler.CrawlerUtils $ fetch(org.series.crawler.site.SubSiteA).
我正在尝试使用线程.我只使用过一次线程,而我正在努力做到和我在其他项目中做的一样.
我有:
Class CrawlerUtils {
public static void crawlSites(List<Site> sites) {
def pool = Executors.newFixedThreadPool(MAX_THREADS)
def ecs = new ExecutorCompletionService<Void>(pool);
sites.each { ecs.submit(new fetch(it), Void) }
sites.each { ecs.take().get() }
pool.shutdown()
}
class fetch implements Runnable {
Site site
fetch(Site site) {
this.site = site
}
public void run() {
site.parse()
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试过这些(uglies)方法:
任何的想法?
由于crawlSites是静态的,所以类Fetch(应该有大写字母遵循任何形式的通用命名方案)也需要是静态的.
static class Fetch implements Runnable
Run Code Online (Sandbox Code Playgroud)
我会使用GPars ...看看指南的这一部分
你应该能够做到:
GParsPool.withPool {
sites.eachParallel { site -> site.parse() }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1140 次 |
| 最近记录: |