Konkurentné programovanie - 2. seminár zo 19.9.2024
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.
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.
nechodím na prednášky