0529. [Perl] (fork) fork wait 이해하기
IT2016. 3. 4. 17:39
#!/usr/bin/perl
use strict;
MAIN: {
my ($i, $pid);
my @numbers=(2,3,8,9,5);
foreach $i (@numbers) {
$pid=fork(); #자식 프로세스는 마치 부모 프로세스와 같은 실행과정을 거친 것처럼 부모 프로세스와 같은 위치에서 스크립트실행을 재개한다.
#함수 fork() 의 반환값은 부모 프로세스와 달리 0이 된다
if($pid == 0) {
#child
sleep $i;
print $i . ",";
exit 0;
}else {
print "forked pid = " . $pid . "\n";
}
}
while (1) {
if ( wait() == -1){ #모든 자식 프로세스가 완료되면 wait() 는 -1 을 반환한다
print "Done... \n";
exit 0;
}
}
}
#fork() 는 자식프로세스를 생성하고 그 프로세스 ID 를 반환한다
'IT' 카테고리의 다른 글
0531. [Perl] (monitor) httpd mail 데몬 모니터링2 (0) | 2016.03.04 |
---|---|
0530. [Perl] (monitor) httpd 데몬 모니터링 (0) | 2016.03.04 |
0528. [Perl] (Twitter) Twitter 연동 (0) | 2016.03.04 |
0527. [Perl] (CPAN) install module 확인하기 (0) | 2016.03.04 |
0526. [Perl] (CPAN) CPAN 설치하기 (0) | 2016.03.04 |