Konkurentné programovanie - 2. seminár zo 19.9.2024

Zdroj
ručne priradené
Pridané

Pozrieť na YouTube →

Preber si túto prednášku so svojou AI

Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.

Otvoriť AI: ChatGPT · Claude · Gemini

Zhrnutie prednášky

Druhé cvičenie z Konkurentného programovania nadväzuje na tému kritických sekcií a zameriava sa na návrh vláknovo bezpečných (thread-safe) tried a objektov. Vysvetľuje pojem stavu triedy a objektu (statické a inštančné premenné), problém neaktuálnosti zdieľaných premenných spôsobený procesorovou vyrovnávacou pamäťou a race condition pri neatomických operáciách nad typmi long. Ukazuje riešenia pomocou kľúčového slova synchronized a volatile, ktoré zabezpečujú aktuálnosť a atomicitu čítania a zápisu. Na záver predstavuje atomické triedy z balíka java.util.concurrent.atomic (AtomicReference, AtomicInteger, AtomicLong) ako pokročilejší nástroj na atomické operácie nad zdieľanými premennými.

  • Kritické sekcie a zámky (synchronized)
  • Vláknová bezpečnosť (thread safety) tried a objektov
  • Stav triedy vs. stav objektu (statické a inštančné premenné)
  • Neaktuálnosť zdieľaných premenných kvôli CPU cache
  • Race condition pri neatomických operáciách (napr. long na 32-bit strojoch)
  • Kľúčové slovo volatile
  • Atomické triedy AtomicReference, AtomicInteger, AtomicLong

Zhrnutie pripravené s pomocou AI z prepisu videa.