Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java vert.x-可能有多少个计时器_Java_Vert.x - Fatal编程技术网

Java vert.x-可能有多少个计时器

Java vert.x-可能有多少个计时器,java,vert.x,Java,Vert.x,在vert.x中,我可以创建多少个计时器(主要是一次)而不考虑性能降低、内存问题等。?有一些限制吗 创建这些计时器的场景并不是人为的,我不想一次循环创建几千个计时器,而是在现实世界中,随着时间的推移,计时器可能会不断创建,一次创建几个计时器,一小时创建10个计时器,或者一天创建100个计时器,但这可能会发生,总的来说,有几千个已经创建并等待运行 例如,如果其中几百个在同一时间执行或几乎在同一时间运行,会发生什么?vert.x如何处理这种负载 干杯简短回答:即使设置了数百万个周期计时器,也不会发生

在vert.x中,我可以创建多少个计时器(主要是一次)而不考虑性能降低、内存问题等。?有一些限制吗

创建这些计时器的场景并不是人为的,我不想一次循环创建几千个计时器,而是在现实世界中,随着时间的推移,计时器可能会不断创建,一次创建几个计时器,一小时创建10个计时器,或者一天创建100个计时器,但这可能会发生,总的来说,有几千个已经创建并等待运行

例如,如果其中几百个在同一时间执行或几乎在同一时间运行,会发生什么?vert.x如何处理这种负载


干杯

简短回答:即使设置了数百万个周期计时器,也不会发生什么事情

您可以自己尝试一下:

    Vertx vertx = Vertx.vertx();
    AtomicLong counter = new AtomicLong(0);

    for (int i = 0; i < 1_000_000; i++) {
        vertx.setPeriodic(1, (l) -> {
            if (counter.incrementAndGet() % 1_000_000 == 0) {
                System.out.print(".");
            }
        });
    }
    System.out.println("Done deploying");
Vertx Vertx=Vertx.Vertx();
AtomicLong计数器=新的AtomicLong(0);
对于(int i=0;i<1_000;i++){
顶点设置周期(1,(l)->{
if(counter.incrementAndGet()%1\u 000\u 000==0){
系统输出打印(“.”);
}
});
}
System.out.println(“部署完成”);
在这里你可以看到我创建了1M个计时器,每个计时器每毫秒递增一个计数器。这将使您的CPU达到峰值,并消耗大量内存,但它可以正常工作

我们谈论的是积极运行计时器。睡眠计时器将消耗的唯一资源是内存(因为它们是数据结构中的两个对象)。 只要你没有耗尽内存(你需要成千上万的内存才能实现),你就应该没事了

如果你真的很好奇Vert.x中的计时器是如何工作的,你可以从这里开始观察: