Процессы и потоки. Зависает в конце04.01.2016, 14:46. Показов 1765. Ответов 12
Метки нет (Все метки)
Подскажите пожалуйста, что мне нужно добавить в код, чтобы нормально заканчивало выполнение. Кроме этого все работает отлично.
Выкладываю код.
0
|
||||||
| 04.01.2016, 14:46 | |
|
Ответы с готовыми решениями:
12
Потоки ввода/вывода, дочерние процессы и FIFO Лаба на С. потоки и процессы Процессы и потоки в Qt |
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
| 04.01.2016, 15:03 | |
Сообщение было отмечено max_sk как решение
Решение
Перед окончание родительского процесса - wait(0);
1
|
|
| 05.01.2016, 15:08 [ТС] | ||||||
|
Хорошо, спасибо...
Добавлено через 23 часа 56 минут gng, может подскажете еще ? А какой wait() нужно выставить в этом коде, чтобы не зависало? Что то не могу разобраться в man'e... Выкладываю код...
0
|
||||||
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
||
| 05.01.2016, 15:35 | ||
|
У вас на кажной итерации и родитель и все дочки вызывают fork(). В итоге получается 512 процессов. Нужно в дочернем процессе дописать break для выхода из цикла. В родительском wait (NULL) или waitpid (childpid, NULL, 0), что то же самое. Если, конечно, в другом ошибок нет.
1
|
||
| 05.01.2016, 15:57 [ТС] | |
|
Спасибо, буду разбираться... :-?
Добавлено через 16 минут Пытаюсь вспомнить теорию... fork () работает по принципу рекурсии? Тогда если я уберу цикл в начале, оставлю только первый fork () и добавлю еще один fork () внутри родителя, то у меня получится 4 процесса? Еще один форк внури следующего родителя то будет 6 процессов? И т.д. Я правильно рассуждаю?
0
|
|
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
||
| 05.01.2016, 16:14 | ||
|
После форка оба процесса исполняются из той же точки. Различаются только возвращенными значениями fork(); Получается на первой итерации цикла (count=1) создается один процесс. Вместе с родителем их два. На второй итерации каждый из них форкает ещё по процессу и т.д.
1
|
||
| 05.01.2016, 16:46 [ТС] | ||||||
|
То есть, я правильно понимаю, что нижеследующий код создает 10 процессов? Или и тут есть зомби-орфаны, которых я не вижу?
0
|
||||||
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
| 05.01.2016, 19:40 | |
|
Во первых, нужен wait() в теле Parent (напр перед 28 строкой). Во вторых, процессов здесь шесть - 1 родительский и 5 дочерних. Здесь, в отличие от предыдущего кода, 1) нет цикла 2) форк вызывает только первый (и единственный) родитель.
1
|
|
| 05.01.2016, 20:08 [ТС] | ||||||
|
Но во второй итерации "рекурсии", тоже есть своя пара родитель-дочка, и в третьей тоже. Я прав?
Здесь как бы идет такая цепочка:
Добавлено через 52 секунды Прошу прощения, не отобразилось... Добавлено через 14 минут Придется открывать учебник ...
0
|
||||||
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
||
| 05.01.2016, 20:40 | ||
|
Также дочерний процесс, вызвав форк, другим процессом не становится, просто появляется ещё один. Сколько раз вызван форк - столько и новых процессов.
1
|
||
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|||||||
| 05.01.2016, 20:58 | |||||||
1
|
|||||||
| 05.01.2016, 21:04 [ТС] | |
|
Ладно, спасибо gng, попробую разобраться в этом...
0
|
|
| 05.01.2016, 21:04 | |
|
Помогаю со студенческими работами здесь
13
Процессы и потоки потоки и процессы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|