Vert.x:同一顶点中某些Verticle的并发

时间:2017-05-09 16:28:19

标签: concurrency reactive-programming vert.x

我对vert.x很新,我有一个非常基本的问题: 让我们说顶点包括一些顶点。通常说顶点是单线程的。这是否意味着如果正在处理一个垂直,那么属于同一个顶点的另一个垂直将必须等到第一个垂直结束,然后它(另一个垂直)将能够开始工作?我的意思是在同一个顶点的Verticle之间没有上下文切换。

1 个答案:

答案 0 :(得分:0)

一个应用程序可以有多个Verticle。 Vert.x应用程序是事件驱动的,将事件传递给处理程序。 Vert.x将使用名为事件循环的线程调用这些处理程序。

通常,您不会在Vert.x应用程序中阻止(当您执行此操作时,您需要更正它)。事件循环然后在它们到达时连续地向不同的处理程序传递事件,可能在很短的时间内传递大量事件(例如Node.js)。

Vert.x也可以毫不费力地在多核服务器中运行。因此,每个Vert.x实例不是单个事件循环,而是维护多个事件循环。请记住,即使Vert.x实例可以维护多个事件循环,任何特定处理程序永远不会同时执行,并且在大多数情况下( worker verticles除外)将始终使用完全相同的事件循环进行调用。

我认为这是你要找的部分。您可以阅读here了解更多详情。