Parallel :: Threadcontext

Framework voor eenvoudige creatie van multithreaded perl-programma's
Download nu

Parallel :: Threadcontext Rangschikking & Samenvatting

Advertentie

  • Rating:
  • 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