Как выполнить код не на Main потоке в Java

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

Ответ

Для выполнения кода не на Main потоке в Java можно использовать:

  1. Thread - базовый способ:
new Thread(() -> {
    // Ваш код здесь
}).start();
  1. ExecutorService - более гибкий вариант:
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(() -> {
    // Ваш код здесь
});
  1. HandlerThread (в Android):
HandlerThread handlerThread = new HandlerThread("BackgroundThread");
handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper());
handler.post(() -> {
    // Ваш код здесь
});
  1. Kotlin Coroutines (рекомендуется для современных проектов):
CoroutineScope(Dispatchers.IO).launch {
    // Ваш код здесь
}

Важно помнить:

  • Не обновляйте UI из фоновых потоков
  • Используйте синхронизацию при работе с общими ресурсами
  • Управляйте жизненным циклом потоков (особенно в Android)