有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何转换。x是单线程的吗?

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


共 (2) 个答案

  1. # 1 楼答案

    你现在可能已经明白了,但我正在为其他可能会遇到这个问题的人发布一个答案

    A垂直。x实例将创建多个线程。在那里面。x实例您有多个垂直体(更准确地说是垂直体实例)正在运行。 它是一个分配了事件循环垂直实例,但事件循环并不是专门分配给该垂直实例的

    当运行的垂直线数量超过线程数量时,可能会发生重叠。在这种情况下,一些垂直轴将与其他垂直轴分配到同一事件循环。该事件循环将处理来自所有指定垂直轴的事件

    但是,一旦verticle实例启动并分配给事件循环/线程,它将在其上运行,直到verticle终止

  2. # 2 楼答案

    维特。x不是单线程节点。js。 在垂直方向。你必须区分垂直线和工作线。一个垂直。x实例将创建几个事件循环(即线程),通常每个CPU核心一个。垂直线将被分配给一个事件循环,并且总是由同一个线程执行,但只有在有工作要做的情况下。 WorkServerticles将被分配给来自worker池的线程,可以由不同的线程执行。 是什么让Vert编程变得有趣。x是一个事实,你可以“假装”它是单线程的。您不必关心并发性,因为您无法在垂直链接之间共享变量。每个verticle都在自己的类加载器中运行,您只能通过事件总线共享数据。(还有一张共享地图,但在这种情况下会分散注意力。)