Vert.x有許多線程池,eventLoopGroup
, acceptorEventLoopGroup
,internalBlockingPool
,workerPool
。有關Vert.x線程池的一些問題?
爲什麼需要這麼多?
目錄下讀取文件將使用internalBlockingPool
,但這樣的代碼executeBlocking將使用workerPool
。
而在此代碼爲什麼resultHandler在eventLoop線程中執行不是 工作區?
vertx.executeBlocking(future -> {
System.out.println(Thread.currentThread().getName());
future.complete();
}, r -> {
System.out.println(Thread.currentThread().getName());
});
在我的理解事件循環只是一個單獨的線程是無限循環的channel.If無關的網絡,無需使用eventLoopGroup。
如何理解event
在Vert.x,可以給一些Vert.x代碼不netty
代碼
謝謝,[這種行爲有助於保持事件循環線程上的某些邏輯]可以舉一個例子嗎? – twogoods
在輔助線程完成execute函數之後,幾乎總是需要回到事件循環線程上。通過在事件循環中運行結果處理程序,它有助於回到事件循環。大部分「正常」操作將在事件循環中完成,工作線程用於需要阻止IO或長時間運行CPU的情況。 – adamM