使用ScheduledExecutorService时,TimeUnit秒与毫秒调度是否有性能差异?
使用ScheduledExecutorService时,TimeUnit.MILLISECONDS与SECONDS的性能差异分析
直接说结论:完全不存在性能差异。
ScheduledExecutorService底层会把你传入的延迟时间,不管用哪种TimeUnit,统一转换成纳秒来处理。你示例里的5000毫秒和5秒,转换后都是50亿纳秒,内部调度逻辑完全一样,不会有任何性能上的区别。
你实际场景用秒级(包括十分之几秒)、测试时改成毫秒单位的需求完全可行,不用担心里程单位选择会带来额外开销。
示例代码:
ScheduledExecutorService executorService=Executors.newScheduledThreadPool(2); executorService.schedule(new MyTask(),5000,TimeUnit.MILLISECONDS); executorService.schedule(new MyTask(),5,TimeUnit.SECONDS);
内容的提问来源于stack exchange,提问作者Antoniossss
相关产品推荐
相关产品推荐

