package com.forest.ape.mq.impl; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.forest.ape.mq.CallableHandler.RecvHandler; public class DefaultRecvHandler implements RecvHandler { Logger LOG = LoggerFactory.getLogger(DefaultRecvHandler.class); @Override public boolean handleRecv(byte[] data) { if (!t.isAlive()) t.start(); total.addAndGet(1); // try { // TimeUnit.SECONDS.sleep(1); // } catch (InterruptedException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } return true; } AtomicLong total = new AtomicLong(0); Statictis t = new Statictis(); class Statictis extends Thread { StringBuilder sb = new StringBuilder(); int time = 1; long last = 0; boolean running = true; @Override public void run() { while(running) { long cur = total.get(); sb.append("time:" + time + "s " + (cur - last)); System.out.println("time:" + time + "s " + (cur - last)); last = cur; try { TimeUnit.SECONDS.sleep(1); time++; } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public void shutdown() { running = false; this.interrupt(); } } public void shutdown() { t.shutdown(); } }