Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Параллельность выполнения процессов после fork(), Несоответствие гайду. 
:(
    Опции темы
bonger
Дата 10.3.2011, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.3.2011

Репутация: нет
Всего: нет



Нашел следующий линк http://hell.jedicoder.net/?p=82, где в качестве примера приведен код:

Код

my $pid = fork();
if (not defined $pid) {
print "resources not avilable.\n";
} elsif ($pid == 0) {
print "IM THE CHILD\n";
sleep (5);
print "IM THE CHILD2\n";
exit(0);
} else {
print "IM THE PARENT\n";
waitpid($pid,0);
}
print "HIYA\n";


И ожидаемый результат работы:

IM THE CHILD
IM THE PARENT
                        - sleep for 5 seconds -
IM THE CHILD2
HIYA

Что вижу я (ActiveState Perl, Win 7 x64):

C:\pl>pl2.pl
IM THE PARENT
IM THE CHILD
                       - спим указанные 5 секунд -
IM THE CHILD2
HIYA

Дополнительная секундная задержка делает вывод как у автора.

Код

sleep(1); 
print "IM THE PARENT\n"; 



Ну и собственно вопрос - в чем и где тут хитрость? Чего то я не понимаю? Или настройки интерпретатора, сама ос...

PM MAIL   Вверх
Pfailed
Дата 11.3.2011, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 22
Всего: 39



Не определён здесь порядок вывода, может первым как parent напечатать, так  и child, как повезёт. Но более логично, что parent успеет напечатать первым, потому как для инициализации дочернего процесса затрачивается какое-то время.
Второе на что нужно обратить внимание, это то, что в windows отсутствует системный вызов fork и perl эмулирует его через потоки. Таким образом на адекватную работу можно только надеяться. Например fork бомба 
Код

fork while fork
 в windows не взрывается smile 


--------------------
PM MAIL   Вверх
arto
Дата 11.3.2011, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



сама ос
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.