gpt4 book ai didi

java - vert.x 如何是单线程的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:03:52 28 4
gpt4 key购买 nike

根据我的理解,每个 vert.x 实例都将被分配一个事件循环。事件循环处理该特定实例的所有请求和其他任务。我认为事件循环是一个线程。当部署了多个 vert.x 实例时,每个实例都有自己的事件循环,对吧?这意味着存在多个线程(multi-threading)。我是这样理解的。这个单线程的概念让我很头疼。任何帮助将不胜感激。

最佳答案

Vert.x 不像 node.js 那样是单线程的。在 vert.x 中,你必须区分 Verticles 和 WorkerVerticles。一个 Vert.x 实例将创建多个事件循环(它们是线程),通常每个 CPU 核心一个。 Verticles 将被分配到一个事件循环,并且将始终由同一个线程执行,但前提是有工作要做。WorkerVerticles 将被分配给来自工作池的线程,并且可以由不同的线程执行。使用 Vert.x 进行编程的乐趣在于您可以“假装”它是单线程的。您不必关心并发性,因为您不能在 Verticle 之间共享变量。每个 Verticle 都在自己的类加载器中运行,您只能通过事件总线共享数据。 (还有一个共享 map ,但在这种情况下会让人分心。)

关于java - vert.x 如何是单线程的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23931208/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com