因为scheduleAtFixedRate是指定频率执行方法,若方法的执行时间大于指定的间隔时间,将会发生,同一时间点 ,执行方法N 次。
所以需要使用同步方法才确保并发操作的安全性。
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
public class TodoTimer { static Logger log = SimpleLogger.getLogger(TodoTimer.class); private TodoTimer() { } /** * 定时操作线程 */ private final