package com.geekbang.threadlocal;
import java.util.ArrayList;
import java.util.List;
public class PerformanceTracker {
private static class Phase {
public Phase(String name, long duration) {
this.name = name;
this.duration = duration;
}
private String name;
private long duration;
@Override
public String toString() {
return "Phase{" +
"name='" + name + '\'' +
", duration=" + duration +
"}\n";
}
}
// TODO ThreadLocal一般都是 static的
// TODO 这样使用ThreadLocal,这些数据不用在应用程序之间传递,而且还可以为每个线程保留自己的一份数据
private static final ThreadLocal<List<Phase>> PHASES = new ThreadLocal<>();
private static final ThreadLocal<Long> PHASE_START_TIME = new ThreadLocal<>();
public static void reset() {
PHASES.set(new ArrayList<>());
PHASE_START_TIME.set(-1L);
}
public static void startPhase() {
PHASE_START_TIME.set(System.currentTimeMillis());
}
public static void endPhase(String phaseName) {
long start = PHASE_START_TIME.get();
PHASES.get().add(new Phase(phaseName, System.currentTimeMillis() - start));
}
public static void finish() {
List<Phase> phases = PHASES.get();
PHASES.set(null);
PHASE_START_TIME.set(null);
StringBuilder out = new StringBuilder("------Thread Execution Phase Durations---------\n");
phases.forEach(out::append);
out.append("--------------------------------------\n");
System.out.println(out.toString());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java ThreadLocal多线程专属的变量源码
共12个文件
xml:6个
java:5个
iml:1个
需积分: 0 0 下载量 65 浏览量
2023-11-05
17:54:11
上传
评论
收藏 11KB ZIP 举报
温馨提示
java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码
资源推荐
资源详情
资源评论
收起资源包目录
java ThreadLocal多线程专属的变量源码.zip (12个子文件)
java ThreadLocal多线程专属的变量
code
src
com
geekbang
threadlocal
InputHandler.java 537B
UseThreadLocalAppMain.java 1KB
PerformanceTracker.java 2KB
DBQuery.java 402B
ConentProcess.java 408B
code.iml 423B
.idea
codeStyles
codeStyleConfig.xml 149B
uiDesigner.xml 9KB
vcs.xml 247B
workspace.xml 23KB
misc.xml 275B
modules.xml 248B
共 12 条
- 1
资源评论
zero2100
- 粉丝: 160
- 资源: 2417
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功