Ответ
Многопоточное программирование — это подход, при котором приложение выполняет несколько потоков одновременно в рамках одного процесса. Потоки разделяют общие ресурсы (память, файлы), но выполняются независимо.
Пример в Kotlin:
Thread {
// Фоновый поток
val result = doHeavyWork()
runOnUiThread {
// Обновление UI из главного потока
textView.text = result
}
}.start()
Нюансы:
- Гонка данных — если потоки обращаются к общим данным без синхронизации.
- UI-поток — в Android основной поток отвечает за отрисовку, тяжелые операции нужно выносить в фоновые потоки.
- Синхронизация — для безопасного доступа используются
synchronized,Mutex,CoroutineDispatcher.
Используйте Coroutines или RxJava для удобной работы с потоками.