Thread :: Ressourcen :: Rwlock

Lese- / Schreibsperre-Basisklasse für Perl-Ithreads
Jetzt downloaden

Thread :: Ressourcen :: Rwlock Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Dean Arnold
  • Website des Verlags:
  • http://search.cpan.org/~darnold/

Thread :: Ressourcen :: Rwlock Stichworte


Thread :: Ressourcen :: Rwlock Beschreibung

Lesen / Schreibsperrklasse für Perl-Ithreads Thread :: Ressourcen :: Rwlock ist ein Perl-Modul, das sowohl eine erinnerbare abstrakte Klasse als auch eine konkrete Objektimplementierung liefert, um den gleichzeitigen Zugriff auf Ressourcen zu regulieren. Mehrere gleichzeitige Reader-Threads können einen Thread :: Ressourcen :: Rwlock-ReaLock gleichzeitig halten, während ein einzelner Schriftsteller-Thread das Lock exklusiv hält Die Lesesperre wird erteilt, nachdem alle anstehenden Schreibsperranforderungen freigegeben wurden. Fäden verwenden; Verwenden Sie Threads :: Shared; Verwenden Sie Thread :: Warteschlange :: wahlbar; Verwenden Sie Thread :: Ressourcen :: Rwlock; Verwenden Sie Basis QW (Thread :: Warteschlange :: Welmelable Thread :: Ressourcen :: Rwlock); Sub New {My $ Class = Schicht; mein% obj: Shared = (); mein $ self = segn \% obj, $ class; # # init the sperrmitglieder # $ self-> thread :: ressource :: rwlock :: schmier (); ergib $ selbst zurück; } Sublösen {MY ($ class, $ self); SEINES SEINES $, SELBST, $ KLASSE; } Package Main; Fäden verwenden; Verwenden Sie Threads :: Shared; Verwenden Sie Thread :: Warteschlange :: Duplex; Verwenden Sie LockedObject; # # in Gewinde-App: # My $ read_write = lockedobject-> new (); Mein $ TQD = Thread :: Warteschlange :: Duplex-> Neu (); meine $ thrda = threads-> neu (\ read_thread, $ tqd); meine $ thrdb = threads-> neu (\ riss_thread, $ tqd); # # Übergeben Sie das gemeinsame Objekt in jedem Thread # $ TQD-> enqueue_and_wait ($ read_write); $ tqd-> enqueue_and_wait ($ read_write); # Reader sub read_thread {mein $ tqd = schalte; meine $ Anfrage = $ tqd-> dequeue (); $ TQD-> Antworten ($ $ Anfrage -> , 1); meine $ obj = $ Anfrage -> ; mein $ clearToken = $ obj-> read_lock (); # # Machen Sie einige Sachen # $ obj-> entsperren ($ secleToken); } # Writer SUB WRITE_TRHEAD {MEINE $ TQD = Schicht; meine $ Anfrage = $ tqd-> dequeue (); $ TQD-> Antworten ($ $ Anfrage -> , 1); meine $ obj = $ Anfrage -> ; # # Zuerst schnappen Sie sich ein Readlock # MEINE $ SCHLOSSTOKE = $ obj-> read_lock (); # # einige Sachen tun, dann Upgrade auf ein writelock # $ obj-> write_lock (); # # Machen Sie etwas Zeug, dann entsperren Sie # $ obj-> freischalten ($ secleToken); } Anforderungen: · Perl.


Thread :: Ressourcen :: Rwlock Zugehörige Software