Parallel :: Threadcontext.

Framework zur einfachen Erstellung von Multithreaded Perl-Programmen
Jetzt downloaden

Parallel :: Threadcontext. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Name des Herausgebers:
  • Serge Tsafak
  • Website des Verlags:
  • http://search.cpan.org/~tsafserge/

Parallel :: Threadcontext. Stichworte


Parallel :: Threadcontext. Beschreibung

Framework zur einfachen Erstellung von Multithread-Perl-Programmen ThreadContext ist ein Perl-Modul, das ein Framework und einige Dienstprogramme zur einfachen Erstellung von Multithreaded-Perl-Programmen bereitstellt. Es stellt das Konzept der kontextbasierten gleichzeitigen Threads ein und verwendet den Kontext an, der eine Art Name und Arbeitsraum für die Thread-Ausführung angibt, und besteht aus einer Warteschlange + Threads, die an der Warteschlange + Schlösser arbeiten, die von Threads verwendet werden, die an dieser Warteschlange arbeiten. Der Benutzer kann beliebig viele Kontexte definieren, wie er in Abhängigkeit von seiner Anwendungslogik, z. 'Prefetch', 'Decodieren', 'Execute', ... in jedem Kontext-Threads, die gleichzeitig ähnliche Aufträge auf derselben Warteschlange durchführen. Alle Fäden in demselben Kontext stellen eine Thread-Gruppe dar. Natürlich kann eine Gruppe nur aus einem Thread bestehen. Ressourcen, die in einem Kontext gesperrt sind, beeinflussen nicht andere Kontexte. Synopsis verwenden Parallel :: ThreadContext; mein $ counter = 0; mein $ counter_ref = \ $ counter; sub op1 {my $ job = shift @_; Parallel :: Threadcontext :: abortcurrentthread ("Ich bin müde von wohnen"), wenn ($ Job == 30); Parallel :: ThreadContext :: Println ("Job $ $ Job in Context". Parallel :: ThreadContext :: getcontextname ()); Parallel :: Threadcontext :: pausecurrenthead (1); Parallel :: Threadcontext :: Reservelock ("Gegenschiebe", "Berechnung"); $ counter ++; Parallel :: ThreadContext :: RELEASELOCK ("Gegenlocker", "Berechnung"); } $ Parallel :: threadcontext :: debug = 1; drucken stdout parallel :: threadcontext :: version (); meine $ nbthreads = parallel :: threadcontext :: getnoprocessors (); Wenn (definierte $ NBThreads) {$ nbthreads * = 3; # 3 Threads pro Prozessor} else {$ nbthreads = 3; } Parallel :: Threadcontext :: sharevariable ($ counter_ref); Parallel :: ThreadContext :: Start (\ OP1, , $ NBThreads, "Berechnung"); Parallel :: Threadcontext :: AddjoBstoqueue (, "Berechnung"); Parallel :: Threadcontext :: pausecurrenthead (2); Parallel :: Threadcontext :: AddjoBstoqueue (, "Berechnung"); Parallel :: Threadcontext :: pausecurrenthead (4); Parallel :: threadcontext :: ende ("computer"); #waren Sie eine Warnung, wenn die Warteschlange im Kontext noch offen ist (noch nicht abgeschlossen) Parallel :: Threadcontext :: Addjobstoqueue (, "Berechnung"); #warning seitdem, seitdem der Kontext nicht mehr parallel gibt :: Threadcontext :: addjobstoqueue (, "computer"); Parallel :: ThreadContext :: Start (\ OP1, [, 1, "Computer2"); Parallel :: Threadcontext :: FinalizeQueue ("Computation2"); Parallel :: Threadcontext :: ertragszeit ("computer2"); Parallel :: ThreadContext :: Ende ("Computation2"); Parallel :: ThreadContext :: Println ("Final Counter Wert ist $ counter"); Anforderungen: · Perl.


Parallel :: Threadcontext. Zugehörige Software