🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #2000

Re: Perl & threads

#2000
From: Nitro
Date: Tue, 19 Oct 2004 05:45
87 lines
3064 bytes
On Mon, 18 Oct 2004 22:47:36 +0000, John Bokma wrote:

> Nitro wrote:
> 
>> ik weet niet of ik iets mis doe, maar mijn threads in perl doen raar.
>> 
>> ik heb een heel simpel programmake da iets moet afprinten (2 threads,
>> 2 strings), maar ze komen maar om de beurt.
>> 
>> En na ne tijd quit da programma van zelf, wat mij ook ni normaal
>> lijkt? 
>> 
>> Mijn code:
>> 
>> #!/usr/bin/perl -w
> 
> Gebruik liever:
> 
> use warnings;
> 
> ipv -w
> 
>> use strict;
>> use threads;
>> 
>> my $t1 = threads->new( sub { thread("aaaaa")});
>> my $t2 = threads->new( sub { thread("bbbbb")});
>> 
>> sub thread() {
> 
> waarom gebruik je () (prototyping) ?
> 
>>     my $s = $_[0];
> 
> Ik geef de voorkeur aan:
> 
> my ( $s ) = @_;
> 
> Handig als je later nog eens een parameter extra nodig hebt, of
> 
> my $s = shift;
> 
> 
>>     while(1 > 0) {
> 
> while (1) {
> 
> (leesbaarder)
> 
> 
>>         print($s."\n");
> 
> ( niet nodig, en je kan dus dit doen:
> 
> print "$s\n";
> 
> Overigens is s geen handige naam voor een variabele
> 
> 
>> #        sleep(5);
>>     }
>> }
>> 
>> Ik heb al met detach geprobeerd ook, maar da helpt ni.
>> 
>> Als ik die sleep uitcomment, dan runt elke thread 1 keer (ene print
>> dus) en quitten ze direct, waarom???
> 
> Heb je mazzel. Je start twee threads, en vervolgens exit je programma.
> Wat had je dan verwacht? 
> 
> Zet eens na die twee my's een sleep(10000) :-)

Ok, dit werkt idd. Bedankt. Ook bedankt voor de andere tips. Ik ben nog
niet zo vlot met perl, maar dit was maar een testprogrammaatje, vandaar
die $s enzo.

Wat bedoel je hiermee?
> waarom gebruik je () (prototyping) ?

En eigenlijk had ik verwacht dat mijn hoofdthread mooi ging stoppen, maar
dat de andere bleven doordoen tot ook zij hun stop tegenkwamen (nooit dus).

Dit zal wel eerder aan mijn rededering/wakkerheid liggen dan aan iets
anders :)

Nitro
Technical Details
Message-ID: <pan.2004.10.19.05.45.06.770515@skynet.be>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!syros.belnet.be!ikaria.belnet.be!news.belnet.be!not-for-mail
References: <pan.2004.10.18.21.35.06.746991@skynet.be> <Xns9586B5013139Fcastleamber@130.133.1.4>

Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,822492010c713d8f
X-Google-Attributes: gidfcea4,public
X-Google-Language: DUTCH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!syros.belnet.be!ikaria.belnet.be!news.belnet.be!not-for-mail
From: Nitro <nitroglycerine@skynet.be>
Newsgroups: be.comp.programming
Subject: Re: Perl & threads
Date: Tue, 19 Oct 2004 07:45:08 +0200
Organization: KULeuvenNet
Lines: 87
Message-ID: <pan.2004.10.19.05.45.06.770515@skynet.be>
References: <pan.2004.10.18.21.35.06.746991@skynet.be> <Xns9586B5013139Fcastleamber@130.133.1.4>
NNTP-Posting-Host: seven.kulnet.kuleuven.ac.be
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: ikaria.belnet.be 1098164706 15167 134.58.127.12 (19 Oct 2004 05:45:06 GMT)
X-Complaints-To: abuse@belnet.be
NNTP-Posting-Date: Tue, 19 Oct 2004 05:45:06 +0000 (UTC)
User-Agent: Pan/0.14.2.91 (As She Crawled Across the Table (Debian GNU/Linux))
Cache-Post-Path: seven.kulnet.kuleuven.ac.be!unknown@bluebird.kotnet.org
X-Cache: nntpcache 2.4.0b5 (see http://www.nntpcache.org/)