אשכול :: משאבים :: rwlock

קריאה / כתיבה מנעול בסיס בסיס עבור perl ithreads
הורד עכשיו

אשכול :: משאבים :: rwlock דירוג וסיכום

פרסומת

  • Rating:
  • רישיון:
  • Perl Artistic License
  • מחיר:
  • FREE
  • שם המפרסם:
  • Dean Arnold
  • אתר האינטרנט של המוציא לאור:
  • http://search.cpan.org/~darnold/

אשכול :: משאבים :: rwlock תגים


אשכול :: משאבים :: rwlock תיאור

קריאה / כתיבה נעילת בסיס מעמד עבור ithreads Perl מפרסם :: המשאבים :: RWLock הוא מודול פרל המספק הוא בכיתה מופשטת בירושה, כמו גם יישום אובייקט קונקרטי, כדי להסדיר גישה מקבילה למשאבים. אשכולות קוראים במקביל מרובים עשוי להחזיק אשכול :: המשאבים :: RWLock readlock בעת ובעונה האחת, תוך חוט סופר יחיד מחזיק את מנעול אשכולות קוראים exclusively.New נחסמים אם בכלל סופר מחכה כעת להשיג את המנעול. נעילת הקריאה מוענקת לאחר כול בקשות לנעילת כתיבה הממתינות כבר LockedObject חבילת released.SYNOPSIS; להשתמש אשכולות; שימוש נושאים :: משותפים; אשכול להשתמש :: תור :: Queueable; אשכול להשתמש :: משאבים :: RWLock; להשתמש QW בסיס (Thread :: תור :: אשכול Queueable :: משאבים :: RWLock); תת חדש {שלי $ Class = Shift; obj% שלי: המשותף = (); העצמי שלי $ = יברך \% obj, $ בכיתה; # # Init חברי הנעילה # $ עצמיים> Thread :: משאבים :: RWLock :: Adorn (); להחזיר עצמית $; תת} לפדות {(בכיתת $, $ העצמיים) שלי; בתמורה תברך $ עצמיים, $ בכיתה; } החבילה הראשית; להשתמש אשכולות; שימוש נושאים :: משותפים; אשכול להשתמש :: תור :: דופלקס; להשתמש LockedObject; # # ביישום הליכים: # שלי $ read_write = LockedObject-> חדשות (); tqd = Thread $ שלי :: תור :: Duplex-> חדשות (); שלי $ thrdA = threads-> חדשות (\ read_thread, $ tqd); שלי $ thrdB = threads-> חדשות (\ write_thread, $ tqd); # # לעבור את אובייקט המשותף לכל חוט # $ tqd-> enqueue_and_wait ($ read_write); $ Tqd-> enqueue_and_wait ($ read_write); # Read_thread תת Reader {שלי $ tqd = משמרת; בקשת $ שלי = $ tqd-> dequeue (); tqd- $> מגיבים (בקשה $ -> , 1); שלי $ obj = $ בקשה -> ; שלי $ locktoken = $ obj-> read_lock (); # # לעשות כמה דברים # $ obj-> Unlock ($ locktoken); } Write_thread תת # סופר {tqd $ שלי = משמרת; בקשת $ שלי = $ tqd-> dequeue (); tqd- $> מגיבים (בקשה $ -> , 1); שלי $ obj = $ בקשה -> ; # # הראשון תפוס # readlock שלי $ locktoken = $ obj-> read_lock (); # # לעשות כמה דברים, אז לשדרג writelock # $ obj-> write_lock (); # # לעשות כמה דברים, אז הנעילה # $ obj-> Unlock ($ locktoken); } דרישות: · פרל


אשכול :: משאבים :: rwlock תוכנה קשורה