繁体   English   中英

在Java中不带线程运行计时器

[英]Run timer without thread in java

我正在构建运行1000个(及更多)客户端的模拟器,在每个要在X时间后运行任务的客户端中,我尝试了TimerTask ,问题是在每个任务(超过1000个)中创建了新线程。

是否有没有线程的任务计时器?

您可以使用单个Timer调度多个TimerTask,但它们不能同时运行。 根据您的需要,这可能就足够了。

但是,引用Timer的javadoc:

Java 5.0引入了java.util.concurrent包,其中的并发实用程序之一是ScheduledThreadPoolExecutor ,它是一个线程池,用于以给定的速率或延迟重复执行任务。 实际上,它是Timer / TimerTask组合的更通用的替代品,因为它允许多个服务线程,接受各种时间单位,并且不需要子类化TimerTask (只需实现Runnable )。 使用一个线程配置ScheduledThreadPoolExecutor使其等效于Timer

如果要模拟1000个(和更多)同时执行的客户端,则必须使用Thread 否则,您将只有一个线程,在其中您的确定逻辑将指定何时完成什么客户端的逻辑-实际上不会模拟并行执行的客户端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM