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应用程序不应提供任何请求,除非您说:


您可以缓存来自数据库或任何外部实体的一些数据。
您的所有辅助线程都已准备就绪,可以处理请求。


完成后,只有您可以开始处理请求。在这种情况下,如果您在缓存数据之前开始处理数据,那么可能会发生处理空数据的请求。

08-05 12:36