Встречается на собеседованиях • сегодня
Работал ли с ThreadLocal
`ThreadLocal` позволяет хранить данные, уникальные для каждого потока. Это полезно, например, для хранения контекста в веб-приложениях или избежания синхронизации при работе с потоконебезопасными объектами (например, `SimpleDateFormat`).
Пример:
```java
private static final ThreadLocal dateFormat =
ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd"));
public String formatDate(Date date) {
return dateFormat.get().format(date); // Каждый поток использует свой экземпляр
}
```
**Особенности:**
- Память: значения хранятся, пока жив поток или `ThreadLocal`. Может привести к утечкам в пулах потоков (например, Tomcat).
- Удаление: нужно вызывать `remove()`, особенно в веб-приложениях после завершения запроса.
- Наследование: `InheritableThreadLocal` позволяет передавать значения дочерним потокам.

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