|
0 / 0 / 0
Регистрация: 16.01.2023
Сообщений: 12
|
|
Процессы и потоки03.07.2023, 14:59. Показов 1161. Ответов 15
Я сколько лет занимаюсь c,c++ и не разу мне не приходилось в собственных проектах создавать процесс.
Я хотел бы ответ не просто разницы потока и процесса, а в каких проектах, или задачах стоит создавать процесс вместо потока, я чувствую что процессы и потоки даже сравнивать нельзя, и одно не заменяет другое Дайте обоснованный ответ в приоритете создания процесса вместо потока
0
|
|
| 03.07.2023, 14:59 | |
|
Ответы с готовыми решениями:
15
Процессы и потоки. С++ Потоки и процессы
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
|
| 03.07.2023, 15:15 | |
|
Хочется послать в гугл за фразой "чем отличается процесс и поток"
Вопрос очень популярный, на него тьма информации.
0
|
|
|
0 / 0 / 0
Регистрация: 16.01.2023
Сообщений: 12
|
|
| 03.07.2023, 15:20 [ТС] | |
|
мне нужно не различие, а пример приоритета процесса над потоком, прочитай еще раз мой вопрос
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||
| 03.07.2023, 15:27 | |||
|
P.S: сам по себе fork не делает снимок, а создает копию процесса. Что бы получился снимок, естественно придется дополнительно поработать. Добавлено через 5 минут С полной копией я конечно немного загнул, т.к например pid родительского процесса у этих двух будет отличаться...
1
|
|||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||
| 03.07.2023, 15:31 | ||
Сообщение было отмечено Tny2 как решение
Решение
Тема вообще говоря большая, но если "с практической точки зрения" и ограничиться строго Windows и говорить не совсем идеально точно, то я бы сказал так.
При "запуске exe-шника" порождается процесс. Нельзя запустить сторонний exe-шник "в рамках нового потока" без хакерства. Т.е. в рамках потока можно выполнять только код того же приложения из того же exe-шника (или подключенной dll). (Выполняется код всегда в рамках потока, хотя бы один поток для процесса всегда создаётся. Операционная система выделяет кванты времени именно потокам, не процессам.) Процессы, как и потоки, "выполняются параллельно" (точнее сказать потоки разных процессов выполняются параллельно). Т.е. если мы хотим запустить "параллельно выполняемый код", то мы можем запустить как отдельный процесс, так и поток. Но: а) процесс съест больше ресурсов б) между потоками одного процесса у нас общая память, так что передача данных между потоками - это просто и дёшево; а вот передавать данные между процессами - это отдельная история, т.к. адресное пространство каждого процесса изолировано от других процессов; в) если случится краш в каком-то потоке (необработанное исключение) - то ОС закроет весь процесс, связанный с этим потоком, включая все потоки; в случае же процесса (если мы создали его "для параллельного выполнения кода") краш в таком процессе унесёт только его, но не родительский процесс. Например, из-за пункта в) сейчас браузеры (как минимум chrome) запускают отдельный процесс на каждую вкладку; если какая-то проблема - то вкладка крашится, но браузер (основное окно со вкладками) продолжает работать "ой, вкладка закрашилась, сейчас мы её перезапустим", запускает новый процесс для вкладки, открывает в ней ту же страничку. Добавлено через 1 минуту
1
|
||
|
0 / 0 / 0
Регистрация: 16.01.2023
Сообщений: 12
|
|
| 03.07.2023, 15:39 [ТС] | |
|
а в чем идея fork(а) если для снимка памяти юзают valgrind ?
Добавлено через 4 минуты так или иначе, спасибо за ответ, в какой-то степени приоткрывает занавес
0
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
|
| 03.07.2023, 15:42 | |
|
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 03.07.2023, 15:45 | |
|
Tny2,
valgrind это сторонее ПО которое может быть использовано для анализа других программ. пример с fork-ом касается снимков самой программы из себя, во время ее выполнения (например, как реакция на действие пользователя)
0
|
|
|
0 / 0 / 0
Регистрация: 16.01.2023
Сообщений: 12
|
|
| 03.07.2023, 15:54 [ТС] | |
|
типа мы запускаем процесс который передает через pci инфу другому процессу о действиях пользователя ?
типа: игра>>античит ?
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 03.07.2023, 16:04 | |
|
Tny2,
типа у нас есть требование обеспечить персистентность данных, но на диск при каждом изменении данные мы сбрасывать не хотим... есть так же куча потоков которые могут менять/обновлять данные... и в какой то момент мы решили сделать дамп данных. делаем fork, получаем копию процесса, сбрасываем все интересующие нас данные на диск и эти данные будут представлять собой состояние системы на тот момент когда был затребован дамп
0
|
|
|
0 / 0 / 0
Регистрация: 16.01.2023
Сообщений: 12
|
|
| 03.07.2023, 16:26 [ТС] | |
|
очень интересный способ
как я понимаю мы обрабатываем определенный сигнал дублируем процесс, скидываем инфу, и лочим дублированный процесс ?
0
|
|
|
4079 / 2677 / 432
Регистрация: 09.09.2017
Сообщений: 11,893
|
|||
| 03.07.2023, 16:28 | |||
|
Ну и соответственно если вы запускаете чужую программу, бессмысленно делать ее потоком. Она может по незнанию потереть ваши переменные. Ну а valgrind это программа-анализатор.
0
|
|||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 03.07.2023, 16:34 | ||
|
Tny2,
Что значит лочим дублированный процесс? Вот представьте себе базу данных. У вас там очень много данных. Вам нужен дамп этих данных на текущий момент. Если вы сделаете дамп и продолжите работу с данными (будете их модифицировать), а дамп скажем будет длиться 10 минут, то все что вы добавите в БД течении этих 10 минут тоже может оказаться в дампе. Но вам ведь это не нужно, вам нужно что бы дамп содержал только те данные, которые были в памяти на момент когда вы запросили этот дамп. Вот что бы не ждать эти 10 минут из-за опасения что новые данные тоже будут включены в дамп, мы просто создаем копию процесса на текущий момент времени когда это нужно пользователю и сбрасываем в новом процессе все на диск, и дальше можем работать с нашими данными и менять их не опасаясь, что это как то повлияет на дамп который все еще формируется. Так будет из-за того, что новый процесс получит состояние памяти родительского процесса. Но изменения в памяти родительского процесса никак не повлияют на память дочернего процесса Добавлено через 2 минуты
0
|
||
|
0 / 0 / 0
Регистрация: 16.01.2023
Сообщений: 12
|
||
| 03.07.2023, 17:12 [ТС] | ||
я же все правильно понял ?
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 03.07.2023, 17:29 | |
|
Tny2,
Да, нам в данном случае процесс нужен был именно для формирования дампа. Если дамп сделан, то процесс более не нужен.
1
|
|
|
2393 / 1913 / 763
Регистрация: 27.07.2012
Сообщений: 5,557
|
|
| 03.07.2023, 23:50 | |
|
Может, всё-таки с теории начать?
Э.Таненбаум - Современные операционные системы. Глава 2. Процессы и потоки. Аж 100 страниц. Наверное, что-то полезное найдётся )
0
|
|
| 03.07.2023, 23:50 | |
|
Помогаю со студенческими работами здесь
16
Процессы и потоки (функция GetProcess) Как на С реализовати процессы и потоки?, Как на С реализовати процессы и потоки? Потоки и процессы. Концепция и область применения Процессы и потоки в Qt Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|