CountDownlatch在Web应用程序中如何有用?有人可以解释一种实时情况吗?
public class CountDownLatchTest {
public static void main(String[] args) {
CountDownLatch cdlatch=new CountDownLatch(5);
new Event(cdlatch);
try {
cdlatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("event executed done!");
}
}
public class Event implements Runnable{
CountDownLatch cdlatch;
public Event(CountDownLatch cdlatch) {
new Thread(this).start();
this.cdlatch=cdlatch;
}
@Override
public void run() {
for(int i=0;i<20;i++){
System.out.println("event "+i);
cdlatch.countDown();
}
}
}
最佳答案
有人可以解释一种实时情况吗?
考虑到您的Web应用程序不应提供任何请求,除非您说:
您可以缓存来自数据库或任何外部实体的一些数据。
您的所有辅助线程都已准备就绪,可以处理请求。
完成后,只有您可以开始处理请求。在这种情况下,如果您在缓存数据之前开始处理数据,那么可能会发生处理空数据的请求。