ThreadLocal的使用
ThreadLocal即线程变量。是一个以ThreadLocal对象为键、任意对象为值得存储结构
package com;import java.util.concurrent.TimeUnit;public class Profiler { //第一次get()方法调用时候进行初始化(如果set方法没有调用),每个线程会调用一次 private static final ThreadLocalTIME_THREADLOCAL = new ThreadLocal (){ @Override protected Long initialValue() { return System.currentTimeMillis(); } }; public static final void begin(){ TIME_THREADLOCAL.set(System.currentTimeMillis()); } public static final long end(){ return System.currentTimeMillis() - TIME_THREADLOCAL.get(); } public static void main(String[] args) throws InterruptedException{ Profiler.begin(); TimeUnit.SECONDS.sleep(1); System.out.println("COST : "+ Profiler.end() + " mills"); }}