Parallelo :: ThreadContext.

Quadro per una facile creazione di programmi perl multithread
Scarica ora

Parallelo :: ThreadContext. Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Perl Artistic License
  • Nome editore:
  • Serge Tsafak
  • Sito web dell'editore:
  • http://search.cpan.org/~tsafserge/

Parallelo :: ThreadContext. Tag


Parallelo :: ThreadContext. Descrizione

Quadro per una facile creazione di programmi perl multithread ThreadContext è un modulo Perl fornisce un quadro e alcune utilità per una facile creazione di programmi perl multithread. Introduce e utilizza il concetto di thread simultaneo basato sul contesto. Un contesto Specifica un tipo di nome e spazio di lavoro per l'esecuzione del filo ed è composto da una coda + thread che lavorano su quella coda + serrature utilizzate dai thread che lavorano su quella coda. L'utente può definire liberamente il maggior numero di contesti che vuole a seconda della logica dell'applicazione E.G. 'Prefetch', 'Decode', 'Execute', ... In ogni thread del contesto sta eseguendo i lavori simili simultanei sulla stessa coda.Tutti i thread nello stesso contesto rappresentano un gruppo di thread. Ovviamente un gruppo può essere composto da solo un filo. Le risorse bloccate in un contesto non influiscono su altri contesti.Synopsis Utilizzare parallelo :: ThreadContext; il mio contatore $ = 0; My $ Counter_ref = \ $ contatore; sub op1 {my $ job = shift @_; Parallelo :: threadcontext :: abortcurrentthread ("Sono stanco di vivere") se ($ lavoro == 30); Parallelo :: ThreadContext :: PrintLN ("Esecuzione di lavoro $ lavoro in contesto" .Parallel :: ThreadContext :: getcontextname ()); Parallelo :: ThreadContext :: PauseCurrenTthread (1); Parallelo :: ThreadContext :: ReserveLock ("Controsoffitto", "Computation"); $ Contatore ++; Parallelo :: ThreadContext :: Releaselock ("Controsoffitto", "Computer"); } $ Parallel :: ThreadContext :: Debug = 1; Stampa Stdout Parallel :: ThreadContext :: versione (); My $ Nbthreads = Parallel :: ThreadContext :: getnoprocessori (); se (definito $ nbthreads) {$ nbthreads * = 3; # 3 fili per processore} else {$ nbthreads = 3; } Parallele :: ThreadContext :: ShareVariable ($ contringa_ref); Parallelo :: ThreadContext :: Start (\ OP1, , $ Nbthreads, "Computation"); Parallelo :: threadcontext :: aggiungijobstoquequee (, "calcolo"); Parallelo :: ThreadContext :: PauseCurrenTthread (2); Parallelo :: ThreadContext :: AddJobStoquequee (, "Computation"); Parallelo :: ThreadContext :: PauseCurrenTthread (4); Parallelo :: ThreadContext :: End ("Computation"); #Would fornire un avviso se la coda nel contesto è ancora aperta (non ancora finalizzata) parallelo :: ThreadContext :: AddJobStoquee (, "Computation"); #Warnning da quando il contesto menzionato non esiste più parallelo :: ThreadContext :: AddJobStoquequee (, "Computation"); Parallelo :: ThreadContext :: Start (\ OP1, [], 1, "Computation2"); Parallelo :: ThreadContext :: Finalizequate ("Computation2"); Parallelo :: ThreadContext :: Yielleduntime ("Computation2"); Parallelo :: ThreadContext :: End ("Computation2"); Parallelo :: ThreadContext :: PrintLN ("Valore del contatore finale è $ contatore"); Requisiti: · Perl.


Parallelo :: ThreadContext. Software correlato