Sobes.tech
Junior — Middle

Көп ағынды бағдарламалауда қолданылатын әртүрлі блоктау механизмдерінің түрлерін тізе аласыз ба?

sobes.tech AI

AI-дан жауап

Java-да көп ағынды бағдарламалауда ортақ ресурстарға қатынауды синхрондау үшін әртүрлі блоктау механизмдері пайдаланылады:

  • synchronized — ішкі блоктау механизмі, оны әдістерге немесе код блоктарына қолдануға болады. Ол объектінің мониторын пайдаланады.
  • ReentrantLock (java.util.concurrent.locks пакетінде) — бұдан да икемді блоктау, ол үзілу, уақытша шектеу және күйін тексеру мүмкіндіктерін ұсынады.
  • ReadWriteLock — оқу және жазу үшін бөлек блоктауды қамтамасыз етеді, бұл оқу операциялары көп болған кезде өнімділікті арттырады.
  • Semaphore — бір уақытта ресурсты пайдалана алатын ағындар санын шектейді.
  • CountDownLatch және CyclicBarrier — ағындарды үйлестіру үшін пайдаланылады, олар классикалық блоктау емес, синхронизаторлар.

ReentrantLock қолданудың мысалы:

import java.util.concurrent.locks.ReentrantLock;

ReentrantLock lock = new ReentrantLock();

lock.lock();
try {
    // сыналатын критикалық бөлім
} finally {
    lock.unlock();
}