当空队列填充下一个线程时,我如何添加延迟?例:
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,可以在给定的命令之后调度命令延迟,或定期执行。