Ответ
Безопасность в потоках (thread safety) означает, что код корректно работает в многопоточной среде, предотвращая race conditions, deadlocks и другие проблемы.
Основные подходы:
- Синхронизация – использование
synchronized,Lockили атомарных операций. - Иммутабельность – неизменяемые объекты безопасны по умолчанию.
- Потокобезопасные коллекции –
ConcurrentHashMap,CopyOnWriteArrayList.
Пример с synchronized:
class Counter {
private var count = 0
@Synchronized
fun increment() {
count++
}
}
Важно избегать избыточной синхронизации – она снижает производительность. Для фоновых операций используйте корутины с Dispatchers.Default или Dispatchers.IO.