如何增加FixedThreadPool填充之间的延迟



当空队列填充下一个线程时,我如何添加延迟?例:

int numberOfThreads = 55;
private static ExecutorService executor = Executors.newFixedThreadPool(numberOfThreads);
int counter=0;
for(TblHomePageUrl tblHomePageUrl : mainTable)
{
    legalInstituteIDList.add(tblHomePageUrl.getIntLegalInstitutionID());
    WPCrawlerThread wpThread = new WPCrawlerThread(tblHomePageUrl, maxDepth, politenessDelay);
    executor.execute(wpThread);
    threadList.add(wpThread);
    if(counter<=numThreads){
        try {
            Thread.sleep(10000);
        } catch(InterruptedException ex) {}
    }
    counter++;                      
}

当启动每个线程时,我正在向谷歌发送帖子请求。如果2或3线程运行同一时间,我从谷歌屏蔽。如果我可以在填充线程之间添加一个小延迟。我将远离阻塞。我用的是java。我需要设置为executor

也许您可以尝试使用ScheduledExecutorService而不是ExecutorService。关于ScheduledExecutorService的文档说:

一个ExecutorService,可以在给定的命令之后调度命令延迟,或定期执行。

相关内容

  • 没有找到相关文章

最新更新