boolean checkMail(String host) {
// ...
return false;
}
boolean checkMail(Set<String> hosts, long time, TimeUnit unit) throws InterruptedException {
ExecutorService exec = Executors.newCachedThreadPool();
AtomicBoolean hasNewMail = new AtomicBoolean(false);
try {
for (String host : hosts) {
exec.execute(new Runnable() {
@Override
public void run() {
if (checkMail(host)) {
hasNewMail.set(true);
}
}
});
}
} finally {
// 顺序不能改变
// 第一阶段调用 shutdown 拒绝传入任务
exec.shutdown();
// 该方法调用会被阻塞,直到所有任务执行完毕并且shutdown请求被调用
exec.awaitTermination(time, unit);
}
return hasNewMail.get();
}
检查邮箱是否有新邮件+线程池
最新推荐文章于 2021-07-02 17:52:52 发布