簡短回答是肯定的。每個服務器Verticle都綁定到一個事件循環線程。每個處理程序綁定到同一個線程。這是很容易檢查:
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
vertx.deployVerticle(new ServerVerticle());
}
public static class ServerVerticle extends AbstractVerticle {
@Override
public void start() {
Router router = Router.router(vertx);
router.get("/").handler((r) -> {
System.out.println("Handler " + Thread.currentThread().getName());
r.response().end("");
});
System.out.println("Main verticle " + Thread.currentThread().getName());
vertx.createHttpServer().requestHandler(router::accept).listen(8888);
}
}
訪問服務器,你會發現,你的處理程序是相同的事件循環線程的服務器上。
如果你有緩慢的工作處理程序,使用EventBus和工人verticles:
http://vertx.io/docs/vertx-core/groovy/#worker_verticles
vertx每個垂直代表單個線程。所以要回答你的問題,單線程將處理所有請求。 –