JavaRush /Kurslar /All lectures for UZ purposes /Locks: resurslarga kirishni bloklash

Locks: resurslarga kirishni bloklash

All lectures for UZ purposes
Daraja, Dars
Mavjud

ReentrantLock

Condition — blokirovkalarda sharti qo'llash orqali oqimlarga kirishni boshqarish mumkin. Blokirovka sharti Condition interfeysi obyekti sifatida taqdim etilgan, java.util.concurrent.locks paketidan. Condition obyetlaridan foydalanish wait/notify/notifyAll metodlaridan foydalanishga juda o'xshaydi, Object klassida, ular oldingi mavzularda ko'rib chiqilgan edi.

Lock — lock framework dan interfeys, resurs/bloklarga kirishni cheklash uchun moslashuvchan yondashuvni taklif etadi, synchronized bilan solishtirganda. Bir nechta loklardan foydalanganda, ularni bo'shatish tartibi ixtiyoriy bo'lishi mumkin, va buni sozlash ham mumkin. Bundan tashqari, lok allaqachon band bo'lganda vaziyatni qayta ishlash imkoniyati mavjud.

ReentrantLock — Lock interfeysining bir realizatsiyasi — ReenterantLock klassi. U bitta oqimga lock metodini chaqirish imkonini beradi, hatto u oldindan chaqirilgan bo'lsa ham, blokirovkani bo'shatmasdan.

ReentrantLock klassida, Lock interfeysi metodlaridan tashqari, newCondition() fabrika metodi mavjud. Ushbu metod Condition obyekti qaytaradi, bu joriy oqimni Condition obyektining wait set ga qo'shishga imkon beradi.


private final Lock R_LOCK = ReentrantLock();
R_LOCK.lock();
try {
   //bu yerda qandaydir amallar bajarilayapti
} finally {
   R_LOCK.unlock();
}

ReadWriteLock — read/write loklarini yaratish uchun interfeys. Loklar sistemada ko'p o'qish operatsiyalari va kam yozish operatsiyalari bo'lganda juda foydali.

ReentrantReadWriteLock — ko'p oqimli servislarda va keshlarda ishlatiladi, synchronized bloklar bilan solishtirganda yaxshi ishlash oqimini ta'minlaydi. Asosan, klass ikki bir-birini istisno qiluvchi rejimda ishlaydi: ko'plab o'quvchilar ma'lumotlarni parallel ravishda o'qiydilar va faqat 1 yozuvchi ma'lumotlarni yozadi.

ReentrantReadWriteLock.ReadLock — reader'lar uchun read lock, readWriteLock.readLock() orqali olinadi.

ReentrantReadWriteLock.WriteLock — writer'lar uchun write lock, readWriteLock.writeLock() orqali olinadi.

Synchronizer

AbstractOwnableSynchronizer — sinxronizatsiya mexanizmlarini qurish uchun javobgar bo'lgan bazaviy klass. Eksklyuziv oqimni eslab qolish va o'qish uchun getter/setter saqlaydi, u sizning ma'lumotlaringiz bilan ishlashi mumkin.

AbstractQueuedSynchronizer — FutureTask, CountDownLatch, Semaphore, ReentrantLock, ReentrantReadWriteLock uchun sinxronizatsiya mexanizmi uchun bazaviy klass. Shuningdek, yangi sinxronizatsiya mexanizmlari yaratishda qo'llaniladi, yagona va atomik int qiymati kelib chiqadi.

AbstractQueuedLongSynchronizer — atomik long qiymatini qo'llab-quvvatlaydigan AbstractQueuedSynchronizer ning turi.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION