Parallel :: ThreadcontextFramework voor eenvoudige creatie van multithreaded perl-programma's | |
Download nu |
Parallel :: Threadcontext Rangschikking & Samenvatting
Advertentie
- Vergunning:
- Perl Artistic License
- Naam uitgever:
- Serge Tsafak
- Uitgever website:
- http://search.cpan.org/~tsafserge/
Parallel :: Threadcontext Tags
Parallel :: Threadcontext Beschrijving
Kader voor de gemakkelijke creatie van multithreaded Perl-programma's ThreadContext is een Perl module biedt een kader en een aantal hulpprogramma's voor het eenvoudig creëren van multithreaded Perl-programma's. Het introduceert en maakt gebruik van het concept context gebaseerde gelijktijdige threads.A context wordt een soort naam en werkruimte voor uitvoeringsdraadlijn en bestaat uit een wachtrij + draden aan die wachtrij + sloten door draden aan die wachtrij. De gebruiker kan vrijelijk zo veel contexten als hij wil, afhankelijk van de applicatie logica bijv. 'Prefetch', 'decoderen', 'uitvoeren', ... In elke context draden uitvoert gelijktijdige gelijksoortige functies op dezelfde queue.All draden in dezelfde context vormen een garengroep. Uiteraard kan een groep uit slechts één thread. Resources opgesloten in een context hebben geen invloed op andere contexts.SYNOPSIS gebruik Parallel :: ThreadContext; mijn $ counter = 0; mijn $ counter_ref = \ $ teller; sub op1 {my $ job = shift @_; Parallel :: ThreadContext :: abortCurrentThread ( "Ik ben moe van het leven") if ($ job == 30); Parallel :: ThreadContext :: println ( "het uitvoeren van job $ job in Context" .Parallel :: ThreadContext :: getContextName ()); Parallel :: ThreadContext :: pauseCurrentThread (1); Parallel :: ThreadContext :: reserveLock ( "counterlock", "berekening"); $ Teller ++; Parallel :: ThreadContext :: releaseLock ( "counterlock", "berekening"); } $ Parallel :: ThreadContext :: debug = 1; afdrukken STDOUT Parallel :: ThreadContext :: versie (); mijn $ nbthreads = Parallel :: ThreadContext :: getNoProcessors (); if (gedefinieerd nbthreads $) {$ nbthreads * = 3; # 3 threads per processor} else {$ nbthreads = 3; } Parallel :: ThreadContext :: shareVariable ($ counter_ref); Parallel :: ThreadContext :: start (\ op1, , $ nbthreads, "berekening"); Parallel :: ThreadContext :: addJobsToQueue (, "berekening"); Parallel :: ThreadContext :: pauseCurrentThread (2); Parallel :: ThreadContext :: addJobsToQueue (, "berekening"); Parallel :: ThreadContext :: pauseCurrentThread (4); Parallel :: ThreadContext :: einde ( "berekening"); #would een waarschuwing geven als wachtrij in de context nog open (nog niet afgerond) Parallel :: ThreadContext :: addJobsToQueue ( "berekening"); #warning aangezien genoemde context bestaat niet meer parallelle :: ThreadContext :: addJobsToQueue ( "berekening"); Parallel :: ThreadContext :: start (\ op1, [], 1, "computation2"); Parallel :: ThreadContext :: finalizeQueue ( "computation2"); Parallel :: ThreadContext :: yieldRuntime ( "computation2"); Parallel :: ThreadContext :: einde ( "computation2"); Parallel :: ThreadContext :: println ( "final tellerstand $ teller"); Vereisten: · Perl
Parallel :: Threadcontext Gerelateerde software
CGI :: Toepassing :: Plugin :: Config :: Perl
Pure Perl Config-bestandsbeheer voor CGI :: Toepassing ...
168