Я майже впевнений, але краще це пояснити: Якщо a Runnable
починається з AsyncContext
запиту сервлета, чи є код у методі run потокобезпечним? Я припускаю, що це так. Тому що є новий Runnable
на потік, хіба "не це? Чи може хто-небудь пояснити це питання?
Відповіді:
3 для відповіді № 1Ніякий Java-код, якщо він явно не написаний так, не є безпечним для потоку. AsyncContext
виставляє a start(Runnable)
метод, який приймає a Runnable
значення. Якщо у вас є Runnable
і передавати його як аргумент start(..)
а потім повторно використовувати його в іншому потоці, його безпека потоку може бути порушена.
Що більше, якщо ваш Runnable
ініціалізовано деяким станом, який спільно використовується з іншими частинами вашої програми, а його безпека потоку знову буде невизначеною.
Це все про те, як ви керуєте ним.