Undertow how to do Non-blocking IO?

后端 未结 3 1961
清歌不尽
清歌不尽 2021-02-20 10:16

I am using Undertow to create a simple application.

public class App {
    public static void main(String[] args) {
        Undertow server = Undertow.builder().         


        
3条回答
  •  心在旅途
    2021-02-20 11:07

    Undertow uses NIO, which means that a single thread handles all the requests. If you want to do blocking operations in your request handler, you have to dispatch this operation to a worker thread.

    In your example, you put the thread to sleep, which means tha any request handling is put to sleep, since this thread handles all requests.

    However even if you dispatched the operation to worker thread and put that to sleep, you still would see the blocking issue you mention. This is because you open the same url in several tabs on the same browser. The browsers have an internal blocking of their own. If you open the same url in different tabs, the second url will start the request after the first has finished. Try any url you want to see for yourself. You can easily be confused with this browser behaviour.

提交回复
热议问题