diff --git a/src/main/java/net/lamgc/cgj/util/Locker.java b/src/main/java/net/lamgc/cgj/util/Locker.java index 4111025..2865367 100644 --- a/src/main/java/net/lamgc/cgj/util/Locker.java +++ b/src/main/java/net/lamgc/cgj/util/Locker.java @@ -1,9 +1,14 @@ package net.lamgc.cgj.util; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.concurrent.atomic.AtomicInteger; public final class Locker { + private final static Logger log = LoggerFactory.getLogger(Locker.class); + private final LockerMap fromMap; private final K key; @@ -56,9 +61,15 @@ public final class Locker { @Override public String toString() { - return "Locker{" + + return "Locker@" + this.hashCode() + "{" + "fromMap=" + fromMap + ", key=" + key + '}'; } + + @Override + protected void finalize() throws Throwable { + super.finalize(); + log.trace("{} 已销毁.", this.toString()); + } } diff --git a/src/test/java/net/lamgc/cgj/util/LockerMapTest.java b/src/test/java/net/lamgc/cgj/util/LockerMapTest.java new file mode 100644 index 0000000..e7dd519 --- /dev/null +++ b/src/test/java/net/lamgc/cgj/util/LockerMapTest.java @@ -0,0 +1,18 @@ +package net.lamgc.cgj.util; + +import org.junit.Assert; +import org.junit.Test; + +public class LockerMapTest { + + @Test + public void createAndFinalizeTest() { + LockerMap map = new LockerMap<>(); + Locker locker = map.createLocker("Test", true); + Assert.assertEquals(locker, map.createLocker("Test", true)); + locker.lock(); + locker.unlock(); + System.gc(); + } + +}