Sobes.tech
Junior — Middle

Vysvetlite princíp fungovania monitora ako mechanizmu na zabezpečenie synchronizácie vlákien.

sobes.tech AI

Odpoveď od AI

Monitor v jazyku Java je mechanizmus synchronizácie, ktorý zabezpečuje vzájomné vylúčenie pri prístupe ku zdieľaným zdrojom medzi vláknami. Každý objekt v jazyku Java má s ním spojený monitor.

Princíp fungovania:

  • Keď vlákno vstúpi do synchronizovaného bloku alebo metódy, získa monitor objektu.
  • Dokým je monitor obsadený, ostatné vlákna, ktoré sa pokúšajú vstúpiť do toho istého synchronizovaného bloku, sú zablokované a čakajú na uvoľnenie monitoru.
  • Po opustení bloku je monitor uvoľnený a jedno z čakajúcich vlákien získa prístup.

Toto zabezpečuje, že v kritickej sekcii kódu je súčasne vykonávané iba jedno vlákno, čím sa predchádza súťažným podmienkam a zabezpečuje správnosť dát.

Príklad:

synchronized(this) {
    // kritická sekcia
    sharedResource++;
}