Konkurentné programovanie - 7. seminár z 3.10.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

Siedmy seminár z Konkurentného programovania sa venuje ForkJoinPool, špeciálnemu exekútoru určenému pre rekurzívne úlohy, ktorý interne využíva návrhový vzor work stealing. Vysvetľujú sa nové typy úloh RecursiveTask a RecursiveAction, ktoré nahrádzajú Callable a Runnable a ktorých metóda compute() nesmie vyhadzovať kontrolované výnimky. Kľúčovým konceptom je metóda fork(), ktorou sa spúšťa podúloha, a join(), ktorou úloha čaká na výsledok podúlohy bez blokovania vlákna, ktoré sa medzitým uvoľní pre inú prácu. Na praktickom príklade rekurzívneho počítania veľkosti adresárov sa demonštruje prechod z nekonečného fondu vlákien na ForkJoinPool s obmedzeným počtom vlákien.

  • ForkJoinPool ako exekútor pre rekurzívne úlohy
  • Návrhový vzor work stealing
  • RecursiveTask a RecursiveAction namiesto Callable/Runnable
  • Metóda compute() namiesto call()/run()
  • Metódy fork() a join()
  • Rozdiel medzi join() a get() z hľadiska uvoľnenia vlákna
  • Konečný počet vlákien vs nekonečný thread pool
  • Príklad rekurzívneho prehľadávania adresárov

Zhrnutie pripravené s pomocou AI z prepisu videa.