spring啓動bean加載順序,控制子線程等待主線程

1,spring 啓動時,限制bean的加載順序:@DependsOnnode

該註解用於聲明當前bean依賴於另一個bean。所依賴的bean會被容器確保在當前bean實例化以前被實例化。spring

例如:線程

@DependsOn({"nodesServiceImpl"})

bean名稱,默認爲類名稱首字母小寫。io

2,主要是運用類:function

CountDownLatch latch;

CountDownLatch可以使一個線程在等待另一些線程完成各自工做以後,再繼續執行。使用一個計數器進行實現。計數器初始值爲線程的數量。當每個線程完成本身任務後,計數器的值就會減一。當計數器的值爲0時,表示全部的線程都已經完成了任務,而後在CountDownLatch上等待的線程就能夠恢復執行任務。容器

executorService = Executors.newFixedThreadPool(size);
latch = new CountDownLatch(size);
executorService.execute(() -> function());

在function中執行完業務要調用vi

latch.countDown();

OK!co

相關文章
相關標籤/搜索