Maturitarozbory témat
13

Paralelní a asynchronní programování

📚 PRG
📝 Příprava: 30 min
🎯 Zkouška: 15 min
⚡ Praktická část
📖

Teorie

Asynchronní: non-blocking, callbacks/promises/async-await. Paralelní a souběžné zpracování: vlákna, procesy, race conditions, mutex/lock, semaphore, deadlock, thread-safety, concurrent collections. V JS event loop, microtasks vs macrotasks.

🎯

Tahák

  • 1async/await syntaktický cukr nad promises
  • 2race condition = sdílená data bez synchronizace
  • 3deadlock příčina: cyklické čekání

Typické otázky u maturity

  • 1Co jsou race conditions?
  • 2Jak zabránit deadlocku?
🏷️

Klíčová slova

asyncawaitthreadmutexrace condition

Praktická část

Zadání:

Napište async funkci která spustí 3 HTTP požadavky paralelně a vrátí první úspěšný výsledek (Promise.race-like) s timeoutem.

Kroky:

  1. 1Použij Promise.race
  2. 2Přidej timeout wrapper

Kód:

firstSuccess.ts
export async function firstSuccess<T>(proms: Promise<T>[], msTimeout=3000): Promise<T>{
  const timeout = new Promise<never>((_, rej)=>setTimeout(()=>rej(new Error('timeout')), msTimeout));
  return Promise.race([...proms, timeout]);
}

Praktická část – checklist

0 z 6 dokončeno

Pokrok0%