小编Gaj*_*ora的帖子

vert.x 中的多实例垂直是线程安全的

我知道在 vert.x 中,每次我们不需要在处理程序中编写线程安全时,默认的 Verticle 都会在同一个事件循环中运行。

例如,如果我有一个运行 HttpServer 的 Verticle -

public class HttpServerVerticle extends AbstractVerticle {
@Override
public void start() throws Exception {
    vertx.createHttpServer().requestHandler(req -> {
        req.response().putHeader("content-type", "text/html").end(" 
    <html><body><h1>Hello from vert.x!</h1></body></html>");
    }).listen(8080);
}
Run Code Online (Sandbox Code Playgroud)

}

保证在任何时候,我的请求处理程序都会在 2 个事件循环中被调用两次(针对 2 个不同的请求)。因此,我不必在我的请求处理程序中处理线程安全。

现在,如果我正在运行 HttpServer verticle 的多个实例 -

DeploymentOptions deploymentOptions = new 
        DeploymentOptions().setWorker(false).setInstances(10);

vertx.deployVerticle("com.....HttpServerVerticle", deploymentOptions);
Run Code Online (Sandbox Code Playgroud)

我需要注意线程安全吗?多个请求处理程序(最大 = 10)有可能并行运行吗?

thread-safety vert.x

1
推荐指数
1
解决办法
442
查看次数

标签 统计

thread-safety ×1

vert.x ×1