diff --git a/src/main/java/logicface/LogicFace.java b/src/main/java/logicface/LogicFace.java index 87b1f55..5f904ca 100644 --- a/src/main/java/logicface/LogicFace.java +++ b/src/main/java/logicface/LogicFace.java @@ -23,7 +23,7 @@ public class LogicFace { // 成员变量区 public int logicFaceType; public ITransport transport; // 与logicFace绑定的transport - public LinkService linkService; // 与logicFace绑定的linkService + public LinkService linkService=new LinkService(); // 与logicFace绑定的linkService public LogicFaceCounters logicFaceCounters=new LogicFaceCounters(); // logicFace 流量统计对象 public long expireTime; // 超时时间 ms public boolean state; // true 为 up , false 为down diff --git a/src/main/java/logicface/LogicFaceICN.java b/src/main/java/logicface/LogicFaceICN.java index a43c832..95d79b7 100644 --- a/src/main/java/logicface/LogicFaceICN.java +++ b/src/main/java/logicface/LogicFaceICN.java @@ -12,8 +12,10 @@ import util.ConcurrentHelper; import util.TimeHelper; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.PriorityBlockingQueue; import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; /* * @Author: Wang Feng @@ -25,8 +27,8 @@ import java.util.concurrent.locks.Lock; public class LogicFaceICN extends LogicFace { public Timer timer; // 定时器,在processEvent函数中就被设置成很大的值 public long recentExpireTime; // 最近将要超时的时间戳 - public Map mPit; // PIT表 - public Lock timeoutEventHeapLock; // 锁, mpit 、timeoutEventHeap、recentExpireTime + public Map mPit=new ConcurrentHashMap<>(); // PIT表 + public Lock timeoutEventHeapLock=new ReentrantLock(); // 锁, mpit 、timeoutEventHeap、recentExpireTime // 超时事件堆, 以超时时间排序的最小堆,初始化大小为1000 public PriorityBlockingQueue timeoutEventHeap =new PriorityBlockingQueue(1000,new Comparator(){ @@ -36,7 +38,7 @@ public class LogicFaceICN extends LogicFace { } }); - public Map mFib; + public Map mFib=new ConcurrentHashMap<>(); /** * 通过最长匹配原则查找FIB表,找到合适的兴趣包处理函数