TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Грокаем C++

12 Jun, 12:00

Открыть в Telegram Поделиться Пожаловаться

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Get to the essence. Stay cool.

#OS

4.1k 0 44 14 71
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot