基于ThreadLocal的Rpc调用计时工具

最近写了一个基于ThreadLocal的计时小工具,先看看代码:

public class TimeRecordUtil {
    private static final ThreadLocal START_TIME = new ThreadLocal<>();

    /**
     * (第一步调用)开始调用
     */
    public static void startInvoke() {
        START_TIME.remove();
        START_TIME.set(System.currentTimeMillis());
    }

    /**
     * (第二步调用)调用结束
     *
     * @return
     */
    public static long invokeDuration() {
        long duration = System.currentTimeMillis() - START_TIME.get();
        START_TIME.remove();
        return duration;
    }
}

 使用说明:

1.基于ThreadLocal实现,多线程环境下也可以使用

2.适合记录rpc调用时间

3.尽量结对使用

4.禁止嵌套使用,因为单线程的时候,嵌套使用会有问题

你可能感兴趣的:(语言,分布式)