Gaj*_*ora 1 thread-safety 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)有可能并行运行吗?