Senior
41
Kako izvršiti asinhroni kod u drugom thread-u u Java ili Spring?
Компаније где су питане
Одговор од АИ
sobes.tech АИ
В 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.
Важно, чтобы вызов асинхронного метода происходил из другого бина или через прокси, иначе аннотация не сработает.