В чем разница между потоком и процессом

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

Ответ

Поток (Thread) — это наименьшая единица выполнения в процессе. Потоки одного процесса разделяют память и ресурсы, что позволяет им легко обмениваться данными, но требует синхронизации.

Процесс (Process) — это экземпляр программы со своей собственной памятью и ресурсами. Процессы изолированы друг от друга, взаимодействие между ними сложнее (IPC).

Пример (Kotlin):

// Поток
Thread {
    println("Running in thread: ${Thread.currentThread().name}")
}.start()

// Процесс (запуск нового приложения)
val intent = packageManager.getLaunchIntentForPackage("com.example.app")
startActivity(intent)

Ключевые отличия:

  • Потоки легче, процессы тяжелее.
  • Потоки делят память, процессы — нет.
  • Сбой потока может повлиять на весь процесс, сбой процесса — только на себя.

Видео-ответы