TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
Грокаем C++

12 Jun, 12:00

Open in Telegram Share Report

​​Процесс и поток. Суть
#новичкам

Один из самых популярных вопросов на собесах "в чем отличия потоков и процессов?". Новичков он осаживает, потому что они изучали, как писать код, а не нюансы работы операционной системы и всех этих подкапотных дел. Плюс оба понятия как будто подразумевают какую-то движуху. Но какую?

Погуляв по сети при подготовке к этой серии постов, я ужаснулся количеству путаницы, непонятицы, противоречивицы в "объяснениях" этой темы на русском языке. Надеюсь, что у меня получится лучше, поэтому буду рад фитбэку от новичков касательно понятности изложения.

Сейчас не будем вдаваться в детали работы этих сущностей(это в будущем). Сейчас важно просто понять их суть и как они взаимодействуют между собой.

Любая запущенная программа - это "процесс" с точки зрения ОС. По сути это некая сущность внутри компьютера, которая в себя инкапсулирует весь необходимый объем мероприятий, чтобы ваш бинарник мог в реальности что-то там рассчитывать.

Но сам процесс ничего не считает. Он как оболочка или контейнер, внутри которого происходят расчеты. Само же исполнение кода(расчеты) реализуется потоками.

Обратимся к аналогии для пущего понимания. Мы в ресторане, в котором есть кухня. Кухня, обеспечивающая едой сотни людей в день - это довольно большая и сложная хреновина, в которой много чего есть: само помещение, вентиляция, холодильники, печки, сковородки и тд. Все это нужно для того, чтобы вы поели том-ям.

Но кухня сама по себе не работает. Нужны повара, которые по технологической карте из правильных ингредиентов будут готовить еду. Используя инструментарий кухни, повара производят еду.

Так вот кухня - это процесс, а повара - потоки.

Процесс нужен для обеспечения исполнения, а потоки - это и есть исполнение.

На самом деле пожарить вам стейк или скрутить шаурму может и один человек. Он будет делать все сам, просто не такие большие объемы будут. Если нужно мастабироваться и разделять обязанности, то придется нанимать еще поваров.

Давайте резюмируем и проговорим несколько важных вещей:

👉🏿 Процесс — это экземпляр выполняющейся программы. Это сущность, предоставляющая инструменты для исполнения кода.

👉🏿 Поток - само исполнение кода. Если где-то выполняются инструкции кода, значит там есть поток исполнения.

👉🏿 У каждого ресторана своя площадь, с другими заведениями он местом не делится. Так и у процесса своё адресное пространство — там он царь и бог, но к чужой памяти у него нет доступа .

👉🏿 Повара на кухне свободно общаются и делят оборудование. *Потоки одного процесса легко обмениваются данными, так как используют одну и ту же память и ресурсы

👉🏿 Если повар ошибётся и сломает холодильник — вся колбаса может протухнуть, клиенты будут тесно дружить следующие пару дней с белым другом и писать жалобы на ресторан, что может его вообще обанкротить. Но эта протухшая колбаса никак не повлияет на кафешку рядышком за углом. Потоки могут сделать что-то нехорошее и досрочно завершить работу процесса с ошибкой. Но это никак не повлияет на работу других процессов.

Get to the essence. Stay cool.

#OS

4.1k 0 44 14 71
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot