2015-03-28 2 views
0

Я прочитал статью 17.12 Asynchronous ProcessingВ чем разница между `javax.servlet.AsyncContext.startAsync()` и `new Thread (Runnable) .start()`?

Какая разница между:

public void doGet(HttpServletRequest req, HttpServletResponse resp) { 
    AsyncContext acontext = req.startAsync(); 
    ... 
} 

и

public void doGet(HttpServletRequest req, HttpServletResponse resp) { 
    Runnable runnable = ... 
    new Thread(runnable).start(); 
    ... 
} 

ответ

1

Разница заключается в 'кто' контролирует поток. Когда вы получаете AsyncContext из запроса, используйте его метод start и передайте экземпляр Runnable, контейнер управляет потоком, в котором выполняется логика, которую вы передали в экземпляре Runnable. Это не тот случай, когда вы запускаете поток с использованием новой Thread (runnable) .start()

Смежные вопросы