Article View: pl.comp.lang.perl
Article #51677wątki
From: Paweł
Date: Thu, 03 Dec 2009 18:25
Date: Thu, 03 Dec 2009 18:25
52 lines
2009 bytes
2009 bytes
Witam !
W przykładach dotyczących wątków można znaleźć zwykle coś takiego:
$SIG{'CHLD'}=sub { while(waitpid(-1,WNOHANG)>0){} };
defined (my $child=fork()) or die "Błąd wywołania fork():$!";
if ($child==0)
{....
exit 0;}
Interesuje mnie pierwsza lina.
W opisie podają, ze wykonuję sie ona po zakończeniu procesu dziecka.
Nie bardzo mogę zrozumieć w jakim celu.
Jeśli proces się zakończy to zwalniane są zasoby i nie widzę sensu aby
coś jeszcze robić. Jednak jeśli ta linia wykonuje się przed startem
procesu dziecka to jej wywołanie jest dla mnie logiczne. Zapobiegnie ew.
tworzeniu się kolejnych wątków. Czy ktoś może wyjaśnić jak to jest w
rzeczywistości ?
Załóżmy, że program główny składa się z jednej pętli okresowo
wywoływanej. Chcę w tej pętli utworzyć nowy proces. Jednak tylko w
sytuacji gdy poprzedni się zakończył. Czy można zrobić to w ten sposób:
my $t=0;
while (1)
{
...
if ($t==0)
{
defined (my $child=fork()) or die "Błąd wywołania fork():$!";
if ($child==0)
{
$t=1;
...
...
$t=0;
exit 0;}
}
{
Paweł
Technical Details
Message-ID:
<hf903i$3ta$1@atlantis.news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail From: Paweł <pawel.neo@neostrada.pl> Newsgroups: pl.comp.lang.perl Subject: wątki Date: Thu, 03 Dec 2009 19:25:54 +0100 Organization: TP - http://www.tp.pl/ Lines: 54 Message-ID: <hf903i$3ta$1@atlantis.news.neostrada.pl> NNTP-Posting-Host: cqe34.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: atlantis.news.neostrada.pl 1259865010 4010 83.31.236.34 (3 Dec 2009 18:30:10 GMT) X-Complaints-To: usenet@news.neostrada.pl NNTP-Posting-Date: Thu, 3 Dec 2009 18:30:10 +0000 (UTC) User-Agent: Thunderbird 2.0.0.23 (Windows/20090812) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit