package com.fastbee.base.util; import java.util.concurrent.atomic.AtomicInteger; /** * @author bill */ public class Stopwatch { private final AtomicInteger count = new AtomicInteger(); private final Thread thread; public Stopwatch start() { this.thread.start(); return this; } public int increment() { return count.incrementAndGet(); } public Stopwatch() { thread = new Thread(() -> { long start; while (true) { if (count.get() > 0) { start = System.currentTimeMillis(); break; } try { Thread.sleep(1L); } catch (Exception e) { } } while (true) { try { Thread.sleep(2000L); } catch (Exception e) { } int num = count.get(); long time = (System.currentTimeMillis() - start) / 1000; System.out.println(time + "\t" + num + "\t" + num / time); } }); thread.setName(Thread.currentThread().getName() + "-c"); thread.setPriority(Thread.MIN_PRIORITY); thread.setDaemon(true); } }