Процессы и Потоки - что это и чем они отличаются, Выполнение программы - что это в Программировании

Если кратко, то:

  • Процесс (process) — это запущенная программа с собственным изолированным адресным пространством памяти, выделенным ОС
  • Поток (thread) — это «легковесная» единица выполнения внутри процесса, разделяющая его память (кучу) и ресурсы с другими потоками того же процесса. Процессы независимы, а потоки работают сообща, используя общий стек данных.

Важные моменты:

  • Память: Процессы имеют свою память, потоки — общую память процесса (кучу), но свой стек.
  • Ресурсы: Процесс тяжеловесен (требует много ОЗУ), поток — легок (быстро создается).
  • Взаимодействие: Обмен данными между процессами сложен (IPC), между потоками — прост.
  • Надежность: «Падение» одного потока может обрушить весь процесс, тогда как зависание одного процесса не влияет на другие.

Пример работы процесса и потоков

Браузер (процесс) создает отдельные потоки для отрисовки страницы, загрузки файлов и воспроизведения звука - всё это для обработки задач одной вкладки.
Если открыть вторую вкладку, это часто создаст новый независимый процесс.

Что еще почитать