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();
}