Senior
40
Comment exécuter du code de manière asynchrone dans un autre thread en Java ou Spring?
Entreprises à qui on a demandé
Réponse de l'IA
sobes.tech IA
В Java с использованием Spring Framework можно выполнить код асинхронно, применив аннотацию @Async. Для этого нужно:
- Включить поддержку асинхронного выполнения, добавив
@EnableAsyncв конфигурационный класс. - Пометить метод, который должен выполняться асинхронно, аннотацией
@Async.
Пример:
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Service;
@EnableAsync
@Service
public class AsyncService {
@Async
public void asyncMethod() {
System.out.println("Выполняется в другом потоке: " + Thread.currentThread().getName());
// Долгая операция
}
}
Вызов asyncMethod() не блокирует вызывающий поток, а выполняется в пуле потоков Spring.
Важно, чтобы вызов асинхронного метода происходил из другого бина или через прокси, иначе аннотация не сработает.