TimedSemaphore是一个不错的选择,简单、意义明确。 示例代码 TimedSemaphoretimedSemaphorenewTimedSemaphore(2,TimeUnit。SECONDS,2); newThread((){ for(;;){ if(timedSemaphore。tryAcquire()){ System。out。println(DateFormatUtils。format(newDate(),HH:mm:ss)); } } })。start(); Thread。sleep(10000); timedSemaphore。shutdown(); 输出 22:40:14 22:40:14 22:40:16 22:40:16 22:40:18 22:40:18 22:40:20 22:40:20 22:40:22 22:40:22