当空队列填充下一个线程时,如何添加延迟? 例如:
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个线程同时运行,我将阻止Google。如果我可以在填充线程之间添加一个小延迟。我会远离阻挡。我正在使用java。我需要设置执行者。
答案 0 :(得分:0)
也许您可以尝试使用ScheduledExecutorService
代替ExecutorService
。有关ScheduledExecutorService
的文档说明了:
可以安排命令在给定后运行的ExecutorService 延迟,或定期执行。