Встречается на собеседованиях • сегодня
Что нужно сделать, чтобы выполнить работу в многопоточном режиме в Spring
В Spring многопоточность можно реализовать несколькими способами:
1. **@Async** – аннотация для асинхронного выполнения методов. Требует включения через `@EnableAsync` в конфигурации.
```java
@Service
public class MyService {
@Async
public CompletableFuture asyncMethod() {
// Логика
return CompletableFuture.completedFuture("Done");
}
}
```
2. **ThreadPoolTaskExecutor** – настраиваемый пул потоков.
```java
@Configuration
@EnableAsync
public class AsyncConfig {
@Bean
public Executor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(100);
executor.initialize();
return executor;
}
}
```
3. **@Scheduled** – для периодических задач.
```java
@Scheduled(fixedRate = 1000)
public void scheduledTask() {
// Логика
}
```
4. **Reactive Programming** – через WebFlux и Project Reactor.
Важно учитывать:
- Потокобезопасность сервисов и компонентов
- Обработку исключений (`@Async` + `Future`/`CompletableFuture`)
- Настройку пулов потоков под нагрузку

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы