int flow2 = 6789;
new Thread(new Runnable() {
@Override
public void run() {
runRequest(flow2);
}
}).start();
}
}
/**
- 假设该方法为请求的处理方法
*/
private static void runRequest(int flow){
//设置流水
setFlow(flow);
//判断是否支持 https
boolean supportHttps = condition1() && condition2() == 2 && “https”.equals(condition3());
//获取前缀,getPrefix的参数是我们的观测目标,看它是true还是false
String prefix = getPrefix(supportHttps);
//输出前缀
System.out.println(prefix);
}
private static String getPrefix(boolean supportHttps) {
supportHttps = subCondition();
return supportHttps ? “https” : “http”;
}
private static boolean condition1() {
//复杂逻辑
return true;
}
public static int condition2() {
//复杂逻辑
return 2;
}
public static String condition3() {
//复杂逻辑
return “https”;
}
private static boolean subCondition() {
//复杂逻辑
return false;
}
/**
- 存储线程流水映射
*/
private static final ConcurrentHashMap<Long,Integer> flowMap = new ConcurrentHashMap<>(10);
/**
-
根据当前线程id获取流水
-
@return flow 流水值
*/
private static int getFlow(){
return flowMap