/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
ithreads eksempler
Fra : Nick


Dato : 28-08-03 02:10

Jeg har besluttet mig for at lave en netværks scanner (til at scanne mit
netværk for åbne shares) da jeg mente det var på tide at lære at bruge
threads.
Formålet er egentlig at den skal køre som et console program i windows og
jeg har læst perldoc perlthrtut og kan da også sagtens lave en extra thread
som så tjekker en ip på port 139 MEN!
Nu vil jeg jo gerne ha lidt mere end bare 2 threads igang og jeg har
desværre ikke været så heldig med at finde eksempler eller andet info der
kunne hjælpe mig.
Nogen ideer om hvordan jeg får en helt masse threads til at arbejde sammen
på denne måde?



 
 
Flemming Frandsen (28-08-2003)
Kommentar
Fra : Flemming Frandsen


Dato : 28-08-03 06:57

Nick wrote:
> Nogen ideer om hvordan jeg får en helt masse threads til at arbejde sammen
> på denne måde?

Den løsning jeg ville vælge er: at lade være og bruge en anden løsning
som ikke involverer tråde.

Brug en netværksskanner som kan port scanne i parallel, nmap findes til
windows og den virker ved at sende pakker til alle de maskiner du har
specificeret på samme tid og vente på svar fra alle maskinerne på en gang.

--
Regards Flemming Frandsen - http://dion.swamp.dk
PartyTicket.Net co founder & Yet Another Perl Hacker


Nick (29-08-2003)
Kommentar
Fra : Nick


Dato : 29-08-03 00:08

ja men nu var det jo egentlig for at lære threads lidt bedre.

"Flemming Frandsen" <ff-news.tiscali.dk@partyticket.net> wrote in message
news:rSg3b.61487$Kb2.2647518@news010.worldonline.dk...
> Nick wrote:
> > Nogen ideer om hvordan jeg får en helt masse threads til at arbejde
sammen
> > på denne måde?
>
> Den løsning jeg ville vælge er: at lade være og bruge en anden løsning
> som ikke involverer tråde.
>
> Brug en netværksskanner som kan port scanne i parallel, nmap findes til
> windows og den virker ved at sende pakker til alle de maskiner du har
> specificeret på samme tid og vente på svar fra alle maskinerne på en gang.
>
> --
> Regards Flemming Frandsen - http://dion.swamp.dk
> PartyTicket.Net co founder & Yet Another Perl Hacker
>



Flemming Frandsen (29-08-2003)
Kommentar
Fra : Flemming Frandsen


Dato : 29-08-03 05:44

Nick wrote:
> ja men nu var det jo egentlig for at lære threads lidt bedre.

Programmer der bruger tråde er notorisk svære at debugge, derfor undgår
(jeg|mange) så vidt muligt at bruge tråde, faktisk har jeg aldrig brugt
tråde i Perl.

--
Regards Flemming Frandsen - http://dion.swamp.dk
PartyTicket.Net co founder & Yet Another Perl Hacker


Andreas Plesner Jaco~ (29-08-2003)
Kommentar
Fra : Andreas Plesner Jaco~


Dato : 29-08-03 08:01

In article <BTA3b.62279$Kb2.2677335@news010.worldonline.dk>, Flemming Frandsen wrote:

>> ja men nu var det jo egentlig for at lære threads lidt bedre.
>
> Programmer der bruger tråde er notorisk svære at debugge, derfor undgår
> (jeg|mange) så vidt muligt at bruge tråde, faktisk har jeg aldrig brugt
> tråde i Perl.

Tendensen er dog (med mod_perl2 og venner) at tråde bliver mere og mere
almindelige, så væn dig til det ;)

--
Andreas Plesner Jacobsen | Dammit Jim, I'm an actor, not a doctor.

Michael Legart (29-08-2003)
Kommentar
Fra : Michael Legart


Dato : 29-08-03 08:28

In article <slrnbktuh0.l9o.apj@slartibartfast.nerd.dk>, Andreas Plesner Jacobsen wrote:

> Tendensen er dog (med mod_perl2 og venner) at tråde bliver mere og mere
> almindelige, så væn dig til det ;)

Det virker dog ikke med mp2 endnu (threads altsaa)

--
hestdesign.info - we put the hest in .com

Michael Legart (29-08-2003)
Kommentar
Fra : Michael Legart


Dato : 29-08-03 08:28

In article <BTA3b.62279$Kb2.2677335@news010.worldonline.dk>, Flemming Frandsen wrote:
>
> Programmer der bruger tråde er notorisk svære at debugge, derfor undgår
> (jeg|mange) så vidt muligt at bruge tråde, faktisk har jeg aldrig brugt
> tråde i Perl.

Generelt kan jeg godt lide traade, men efter jeg har hoert
Artur Bergman (ham der vedligeholder ithread si 5.8) fortaelle
om threads i perl kunne jeg ikke finde paa at bruge det... han
vil ikke engang selv bruge det til noget!

To af problemerne er at de er meget tunge (man tager en kopi af
HELE interpreteren med alt data naar en ny traad startes) og
man kan ikke umiddelbart kommunikere mellem traadene.

--
hestdesign.info - we put the hest in .com

Henrik Tougaard (01-09-2003)
Kommentar
Fra : Henrik Tougaard


Dato : 01-09-03 13:38

Michael Legart <legart@daarligstil.dk> wrote in message news:<slrnbku03t.h3.legart@kamel.legart.dk>...
> In article <BTA3b.62279$Kb2.2677335@news010.worldonline.dk>, Flemming Frandsen wrote:
> >
> > Programmer der bruger tråde er notorisk svære at debugge, derfor undgår
> > (jeg|mange) så vidt muligt at bruge tråde, faktisk har jeg aldrig brugt
> > tråde i Perl.
>
> Generelt kan jeg godt lide traade, men efter jeg har hoert
> Artur Bergman (ham der vedligeholder ithread si 5.8) fortaelle
> om threads i perl kunne jeg ikke finde paa at bruge det... han
> vil ikke engang selv bruge det til noget!
>
> To af problemerne er at de er meget tunge (man tager en kopi af
> HELE interpreteren med alt data naar en ny traad startes) og
> man kan ikke umiddelbart kommunikere mellem traadene.

liz har lige lavet en gennemgang af hvordan og hvorfor med iThreads og
Perl-5.8.[01]. Den kan læses på
http://perlmonks.org/index.pl?node_id=288022, og fortæller, som du
skriver, at man skal holde sig fra tråde i perl - medmindre man har en
*rigtig* god grund til det.

POE er nok et bedre alternativ, hvis man absolut vil lave flere ting
på én gang.

Henrik Tougaard. cph.pm

Adam Sjøgren (29-08-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 29-08-03 08:35

On Fri, 29 Aug 2003 07:27:57 +0000 (UTC), Michael wrote:

> To af problemerne er at de er meget tunge (man tager en kopi af HELE
> interpreteren med alt data naar en ny traad startes) og man kan ikke
> umiddelbart kommunikere mellem traadene.

Skulle det sidste ikke være en af hovedpointerne med tråde
vs. processer?!


Mvh.

--
"Of course, this is a heuristic, which is a fancy Adam Sjøgren
way of saying that it doesn't work." asjo@koldfront.dk

Michael Legart (29-08-2003)
Kommentar
Fra : Michael Legart


Dato : 29-08-03 09:10

In article <8765kgq5lj.fsf@virgil.koldfront.dk>, Adam Sjøgren wrote:
>
> Skulle det sidste ikke være en af hovedpointerne med tråde
> vs. processer?!

Hmmm, det lader ogsaa til at man kan noget med thread::share og
share().

--
hestdesign.info - we put the hest in .com

Nick (29-08-2003)
Kommentar
Fra : Nick


Dato : 29-08-03 16:37

ja man kan sagtens dele informationer mellem tråde og det er heller ikke alt
data man lægger over i tråden (man kan faktisk specifere en sub som tråden
skal udføre).
Jeg tror det er fork() du tænker på.

"Michael Legart" <legart@daarligstil.dk> wrote in message
news:slrnbku2im.h3.legart@kamel.legart.dk...
> In article <8765kgq5lj.fsf@virgil.koldfront.dk>, Adam Sjøgren wrote:
> >
> > Skulle det sidste ikke være en af hovedpointerne med tråde
> > vs. processer?!
>
> Hmmm, det lader ogsaa til at man kan noget med thread::share og
> share().
>
> --
> hestdesign.info - we put the hest in .com



Flemming Frandsen (30-08-2003)
Kommentar
Fra : Flemming Frandsen


Dato : 30-08-03 09:34

Nick wrote:
> ja man kan sagtens dele informationer mellem tråde og det er heller ikke alt
> data man lægger over i tråden (man kan faktisk specifere en sub som tråden
> skal udføre).
> Jeg tror det er fork() du tænker på.

Nej, med fork() kopierer man ikke data, ihvertfald ikke explicit og ikke
før man ændrer på data ;)

Med Perl kopierer man hele perl-forktolkerens data strukturer så hver
tråd har en kopi for sig selv (sikkert for at undgå et låsningshelvede)
hvor man så explicit skal udpege det data der skal deles mellem tråde.

.... så vidt jeg husker:)


Egentligt er det lidt underligt at man har implementeret perl-trådning
ved hjælp af os-tråde, ville det ikke være mere logisk at bruge
os-processer (fork()) og så putte de delte datastrukture i shared memory?

--
Regards Flemming Frandsen - http://dion.swamp.dk
PartyTicket.Net co founder & Yet Another Perl Hacker


Adam Sjøgren (30-08-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 30-08-03 09:54

On Sat, 30 Aug 2003 10:33:33 +0200, Flemming wrote:

> Egentligt er det lidt underligt at man har implementeret
> perl-trådning ved hjælp af os-tråde, ville det ikke være mere logisk
> at bruge os-processer (fork()) og så putte de delte datastrukture i
> shared memory?

Men er en af hovedpointerne med tråde ikke at de er lettere end
processer? I så fald giver det jo ikke meget mening at implementere
tråde v.hj.a. processer.


Mvh.

--
"I happen to be a Swede myself" Adam Sjøgren
asjo@koldfront.dk

Flemming Frandsen (30-08-2003)
Kommentar
Fra : Flemming Frandsen


Dato : 30-08-03 15:58

Adam Sjøgren wrote:
> Men er en af hovedpointerne med tråde ikke at de er lettere end
> processer?

Tjoh, det var vist ideen, men en proces koster kun ganske lidt mere end
en tråd (ihvertfald på Linux)


> I så fald giver det jo ikke meget mening at implementere tråde v.hj.a. processer.

Jeg tænkte bare på at det lyder somom man har gjort al arbejdet som
fork() gør (sørger for at hver tråd har sin egen kopi af alt data), så
kunne man lige så godt bruge fork() til det så man høster gevinsten af
copy-on-write og den slags glade features:)

--
Regards Flemming Frandsen - http://dion.swamp.dk
PartyTicket.Net co founder & Yet Another Perl Hacker


Ask Bjoern Hansen (31-08-2003)
Kommentar
Fra : Ask Bjoern Hansen


Dato : 31-08-03 10:56

Flemming Frandsen <ff-news.tiscali.dk@partyticket.net> writes:

> Adam Sjøgren wrote:
> > Men er en af hovedpointerne med tråde ikke at de er lettere end
> > processer?
>
> Tjoh, det var vist ideen, men en proces koster kun ganske lidt mere
> end en tråd (ihvertfald på Linux)

Saa hut jeg visker bliver traade "lettere" i Linux 2.6. (Ifoelge
Theodore Ts'o paa OSCON).

Han fortalte at det var fordi Java goer det for nemt at misbruge og nu
naar Java desvaerre ikke havde forsvundet igen som de havde haabet...




- ask

--
ask bjoern hansen, http://www.askbjoernhansen.com/ !try; do();

Flemming Frandsen (31-08-2003)
Kommentar
Fra : Flemming Frandsen


Dato : 31-08-03 14:41

Ask Bjoern Hansen wrote:
> Saa hut jeg visker bliver traade "lettere" i Linux 2.6. (Ifoelge
> Theodore Ts'o paa OSCON).

Yepper, i gamle dage var processer og tråde ca lige billige og fordi
processer på Linux var billigere (i creation og context switch) end på
de fleste andre os'er så var der ikke den store ide i at se mere på det.

De seneste ændringer i tråd-implementationen har gjort det let at lave
flere 100k (hundredetusinder) af tråde uden at alting går i ged, det
kunne man ikke i gamle dage:)


> Han fortalte at det var fordi Java goer det for nemt at misbruge og nu
> naar Java desvaerre ikke havde forsvundet igen som de havde haabet...

Heh, såddan er der så meget:)

--
Regards Flemming Frandsen - http://dion.swamp.dk
PartyTicket.Net co founder & Yet Another Perl Hacker


Nick (31-08-2003)
Kommentar
Fra : Nick


Dato : 31-08-03 17:02


"Flemming Frandsen" <ff-news.tiscali.dk@partyticket.net> wrote in message
news:EWm4b.63041$Kb2.2782381@news010.worldonline.dk...
> De seneste ændringer i tråd-implementationen har gjort det let at lave
> flere 100k (hundredetusinder) af tråde uden at alting går i ged, det
> kunne man ikke i gamle dage:)

Se det er så det jeg gerne vil ind på. Hvordan vil du lave så mange tråde
uden at alting går i ged?



Flemming Frandsen (01-09-2003)
Kommentar
Fra : Flemming Frandsen


Dato : 01-09-03 12:54

Nick wrote:
> Se det er så det jeg gerne vil ind på. Hvordan vil du lave så mange tråde
> uden at alting går i ged?

Det vil jeg jo netop ikke:)

Med den implementation af tråde som der er i perl i dag tror jeg ikke
det er noget man skal bruge.

Hvis du skal lave noget der kræver rigtigt mange (over 100000) tråde så
skal man vist bruge C/C++

--
Regards Flemming Frandsen - http://dion.swamp.dk
PartyTicket.Net co founder & Yet Another Perl Hacker


Andreas Plesner Jaco~ (01-09-2003)
Kommentar
Fra : Andreas Plesner Jaco~


Dato : 01-09-03 13:09

In article <rsG4b.63432$Kb2.2819892@news010.worldonline.dk>, Flemming Frandsen wrote:

>> Se det er så det jeg gerne vil ind på. Hvordan vil du lave så mange tråde
>> uden at alting går i ged?
>
> Det vil jeg jo netop ikke:)
>
> Med den implementation af tråde som der er i perl i dag tror jeg ikke
> det er noget man skal bruge.

Den er bygget helt om i 5.8, og det skulle absolut være brugbart.

> Hvis du skal lave noget der kræver rigtigt mange (over 100000) tråde så
> skal man vist bruge C/C++

Alt efter mængden af hukommelse i maskinen. Med copy-on-write er det en
relativ billig operation at lave en kopi af datastrukturerne.

--
Andreas Plesner Jacobsen | If there is no God, who pops up the next Kleenex?
|    -- Art Hoppe

Jesper Louis Anderse~ (01-09-2003)
Kommentar
Fra : Jesper Louis Anderse~


Dato : 01-09-03 22:38

In article <slrnbl6dnk.l9o.apj@slartibartfast.nerd.dk>,
Andreas Plesner Jacobsen wrote:

> Alt efter mængden af hukommelse i maskinen. Med copy-on-write er det en
> relativ billig operation at lave en kopi af datastrukturerne.

Er det saa her at man skal vaere glad for at perl ikke har en garbage
collector men en garbage reclaimer? Jeg kan kun se at copy-on-write kan
udnyttes, hvis datastrukturerne ikke bliver flyttet rundt. Noget de vil
i en garbage collector efter tiden med stor sandsynlighed.

--
j.

Lars Balker Rasmusse~ (01-09-2003)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 01-09-03 22:56

Jesper Louis Andersen <jlouis@miracle.mongers.org> writes:
> In article <slrnbl6dnk.l9o.apj@slartibartfast.nerd.dk>,
> Andreas Plesner Jacobsen wrote:
>
>> Alt efter mængden af hukommelse i maskinen. Med copy-on-write er det en
>> relativ billig operation at lave en kopi af datastrukturerne.
>
> Er det saa her at man skal vaere glad for at perl ikke har en garbage
> collector men en garbage reclaimer? Jeg kan kun se at copy-on-write kan
> udnyttes, hvis datastrukturerne ikke bliver flyttet rundt. Noget de vil
> i en garbage collector efter tiden med stor sandsynlighed.

Selvom det naturligvis komplicerer GC'eren kraftigt, er det i det
mindste noget man kan tage højde for.

Parrot skulle gerne give perl5 (ponie) og perl6 rigtige tråde og
rigtig GC samtidig, hvorfor problematikken heldigvis forsvinder.
--
Lars Balker Rasmussen Consult::Perl

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste