Работал ли с многопоточностью в Java

«Работал ли с многопоточностью в Java» — вопрос из категории Многопоточность, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал. В Android многопоточность реализуется через Thread, Runnable, Handler, AsyncTask (устарел), Executors, Coroutines (Kotlin) и RxJava.

Пример с Handler и Thread:

Handler handler = new Handler(Looper.getMainLooper());
new Thread(() -> {
    // Фоновая работа
    handler.post(() -> {
        // Обновление UI
    });
}).start();

Важно:

  • UI-операции только в главном потоке (MainThread).
  • Для сложных задач лучше Coroutines или RxJava.
  • Избегайте утечек памяти (например, Handler с анонимным классом).