Thread :: Resource :: rwlock

Lees / schrijf Lock Basisklasse voor PERL ETHREADS
Download nu

Thread :: Resource :: rwlock Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Dean Arnold
  • Uitgever website:
  • http://search.cpan.org/~darnold/

Thread :: Resource :: rwlock Tags


Thread :: Resource :: rwlock Beschrijving

Lees / schrijf-lock basisklasse voor Perl ithreads Discussie :: Resource :: RWLock is een Perl module die zowel een erfelijke abstracte klasse, evenals een concrete implementatie object biedt, om gelijktijdige toegang tot hulpbronnen te reguleren. Meerdere gelijktijdige threads lezer kan Thread :: Resource :: RWLock readlock tegelijkertijd vasthouden, terwijl een schrijver draad regelt de blokkering exclusively.New lezer draden worden geblokkeerd indien schrijver nog wacht om de vergrendeling te verkrijgen. De read slot wordt toegekend nadat alle hangende schrijf beveiliging verzoeken released.SYNOPSIS pakket LockedObject geweest; Gebruik draden; Gebruik draden :: gedeeld; Gebruik Thread :: Queue :: QUEUEABLE; Gebruik Thread :: Resource :: RWLock; gebruiksbasis qw (Thread :: Queue :: QUEUEABLE Thread :: Resource :: RWLock); subnieuw {mijn $ klasse = verschuiving; mijn% obj: gedeelde = (); mijn $ zelf = zegenen \% obj, $ klasse; # # Init de grendelorganen # $ zelf-> Thread :: Resource :: RWLock :: sieren (); return $ self; } Sub verlossen {mijn ($ klasse, $ zelf); return zegen $ zelf, $ klasse; } Pakketnaam; Gebruik draden; Gebruik draden :: gedeeld; Gebruik Thread :: Queue :: Duplex; Gebruik LockedObject; # # In schroefdraad app: # mijn $ READ_WRITE = LockedObject-> new (); mijn $ TQD = Thread :: Queue :: Duplex-> new (); mijn $ thrdA = threads-> new (\ read_thread, $ TQD); mijn $ thrdB = threads-> new (\ write_thread, $ TQD); # # Passeren het gezamenlijke object naar elke thread # $ tqd-> enqueue_and_wait ($ READ_WRITE); $ Tqd-> enqueue_and_wait ($ READ_WRITE); # Reader sub read_thread {mijn $ TQD = shift; mijn $ request = $ tqd-> dequeue (); $ Tqd-> reageren ($ aanvraag -> , 1); mijn $ obj = $ aanvraag -> ; mijn $ locktoken = $ obj-> read_lock (); # # Doen sommige dingen # $ obj-> unlock ($ locktoken); } # Writer sub write_thread {mijn $ TQD = shift; mijn $ request = $ tqd-> dequeue (); $ Tqd-> reageren ($ aanvraag -> , 1); mijn $ obj = $ aanvraag -> ; # # Eerste pak een readlock # mijn $ locktoken = $ obj-> read_lock (); # # Doen sommige dingen, vervolgens een upgrade naar een writelock # $ obj-> WRITE_LOCK (); # # Doen sommige dingen, dan unlock # $ obj-> unlock ($ locktoken); } Vereisten: · Perl


Thread :: Resource :: rwlock Gerelateerde software

fp

Een bibliotheek voor het programmeren in een functionele stijl ...

190

Downloaden