文档章节

ThredLocal的使用

小小明童鞋
 小小明童鞋
发布于 2017/04/06 23:20
字数 238
阅读 31
收藏 0

ThredLocal,即线程变量,是一个以ThreadLocal对象为键、任意对象为值得存储结构。

package cn.com.test;

import java.util.concurrent.TimeUnit;

public class Profiler {

	//第一次get()方法调用时会进行初始化(如果set方法没有调用),每个线程会调用一次
	private static final ThreadLocal<Long> TIME_THREADLOCAL = new ThreadLocal<Long>(){
		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 Exception {
			Profiler.begin();
			TimeUnit.SECONDS.sleep(10);
			System.out.println("cost:" + Profiler.end() + " mills");
		}
}

以上Profiler可以被复用在方法调用耗时统计的功能上,在方法的入口前执行begin()方法,在方法调用后执行end()方法,好处是两个方法的调用不用再一个方法或者类中,比如在AOP(面向切面变成)中,可以在方法调用前的切入点执行begin()方法,而在方法调用后的切入点执行end()方法,这样依旧可以获得方法的执行耗时。

© 著作权归作者所有

共有 人打赏支持
上一篇: 立夏了,立个flag
下一篇: MD5压缩算法
小小明童鞋
粉丝 30
博文 84
码字总数 74698
作品 0
南京
程序员
私信 提问
JWT如何在Spring Cloud微服务系统中在服务相互调时传递

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/forezp。 https://blog.csdn.net/forezp/article/details/78676036 转载请标明出处...

方志朋
2017/11/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多
Vavr User Guide中英对照版

Vavr User Guide(Vavr用户指南) Daniel Dietrich, Robert Winkler - Version 0.9.2,2018-10-01 0. Vavr Vavr是Java 8 的对象函数式扩展,目标是减少代码行数,提高代码质量,提供了持久化集合...

白石
6分钟前
0
0
Spark2.40 Streaming编程指南

Spark Streaming编程指南 概观 一个快速的例子 基本概念 链接 初始化StreamingContext 离散流(DStreams) 输入DStreams和Receivers DStreams的转换 DStreams的输出操作 DataFrame和SQL操作 ...

天天爬网
7分钟前
0
0
oozie 调度pyspark

http://www.learn4master.com/big-data/pyspark/run-pyspark-on-oozie

MPRO
10分钟前
0
0
转:文件系统read,write缓存,有点意思

当我们在linux系统下写程序的时候,经常会读文件或者写文件,既然要操作文件,就会用文件操作函数,其中涉及读写的不乏有read/write或者fread/fwrite,但是我们应该选择哪一种呢,少安毋躁,...

臧教授
16分钟前
0
0
通过示例学习Javascript闭包

译者按: 在上一篇博客,我们通过实现一个计数器,了解了如何使用闭包(Closure),这篇博客将提供一些代码示例,帮助大家理解闭包。 原文: JavaScript Closures for Dummies 译者: Fundebug 为...

Fundebug
16分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部