netty-AbstractReferenceCounted用法测试例子

来源:互联网 发布:电商网站性能优化 编辑:程序博客网 时间:2024/05/20 11:23
import io.netty.util.AbstractReferenceCounted;import io.netty.util.ReferenceCounted;import io.netty.util.ResourceLeakDetector;import io.netty.util.ResourceLeakTracker;/** * Created by lihong10 on 2017/6/16. */public class ReferenceAbleObj extends AbstractReferenceCounted {    private static ResourceLeakDetector<ReferenceAbleObj> detector = new ResourceLeakDetector(ReferenceAbleObj.class, 2);    protected void deallocate() {        System.out.println("开始回收对象自身");    }    @Override    public ReferenceCounted touch(Object hint) {        return this;    }    public static void test3(ResourceLeakTracker<ReferenceAbleObj> tracker, ReferenceAbleObj obj) {        tracker.record(obj);    }    public static void main(String... args) throws InterruptedException {        detector.setLevel(ResourceLeakDetector.Level.PARANOID);        ReferenceAbleObj obj = new ReferenceAbleObj();        System.out.println(obj.refCnt());        obj.retain();        System.out.println(obj.refCnt());        System.out.println(obj.release());        System.out.println(obj.release());        ResourceLeakTracker<ReferenceAbleObj> track = detector.track(obj);        track.record(obj);        test3(track, obj);        System.out.println(track.toString());    }}