/** * */ package com.taobao.top.analysis.util; import java.io.Serializable; import java.util.concurrent.atomic.AtomicLong; /** * 简单的一个实现,防止日志爆掉 * @author fangweng * @Email fangweng@taobao.com * 2011-11-25 * */ public class Threshold implements Serializable{ /** * */ private static final long serialVersionUID = -8426057843371774390L; private AtomicLong lastTimeStamp; private long frequency; public Threshold(long frequency) { this.frequency = frequency; this.lastTimeStamp = new AtomicLong(System.currentTimeMillis()); } public boolean sholdBlock() { long now = System.currentTimeMillis(); long interval = now - lastTimeStamp.get(); if (interval > frequency) { //这里不用并发原语 lastTimeStamp.set(now); return false; } else return true; } }