1616import cn .com .mirror .repository .neo4j .node .*;
1717import cn .com .mirror .repository .neo4j .storage .GraphEngine ;
1818import cn .com .mirror .utils .FileUtils ;
19- import lombok .Data ;
2019import lombok .extern .slf4j .Slf4j ;
2120
2221import java .util .HashMap ;
2322import java .util .Map ;
2423import java .util .Set ;
24+ import java .util .concurrent .CountDownLatch ;
25+ import java .util .concurrent .ExecutorService ;
26+ import java .util .concurrent .Executors ;
2527
2628/**
2729 * @author piggy
2830 * @description
2931 * @date 18-8-10
3032 */
31- @ Data
3233@ Slf4j
3334public class EdgeConstructor {
35+ private ProjectProperty projectProperty ;
3436
3537 private Unit unit ;
3638 private Pair pair ;
3739 private Map <String , NodeFactory > nodeFactoryMap ;
3840
39- private ProjectProperty projectProperty ;
41+ private final Integer poolSize = 2 ;
42+ private ExecutorService executorService = Executors .newFixedThreadPool (poolSize );
4043
4144 public EdgeConstructor () {
4245 this (LocalLoader .getPrjProperty ());
@@ -49,8 +52,23 @@ public EdgeConstructor(ProjectProperty projectProperty) {
4952 PairAnalyser pairAnalyser = new PairAnalyser ();
5053 UnitAnalyser unitAnalyser = new UnitAnalyser ();
5154
52- unit = unitAnalyser .analyze (projectProperty );
53- pair = pairAnalyser .analyze (projectProperty );
55+ CountDownLatch countDownLatch = new CountDownLatch (poolSize );
56+ executorService .execute (() -> {
57+ unit = unitAnalyser .analyze (projectProperty );
58+ countDownLatch .countDown ();
59+ });
60+ executorService .execute (() -> {
61+ pair = pairAnalyser .analyze (projectProperty );
62+ countDownLatch .countDown ();
63+ });
64+ 65+ try {
66+ countDownLatch .await ();
67+ } catch (InterruptedException e ) {
68+ e .printStackTrace ();
69+ }
70+ 71+ executorService .shutdown ();
5472 }
5573
5674 public void construct () {
0 commit comments