public class ThrottlingThreadExecutor extends ThreadPoolExecutor {
private final int throttleTiming;
private long lastExecutedTime = 0L;
public ThrottlingThreadExecutor(final int throttleTiming) {
super(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>());
this.throttleTiming = throttleTiming;
}
@Override
protected void beforeExecute(final Thread thread, final Runnable runnable) {
if (System.currentTimeMillis() < lastExecutedTime + throttleTiming) {