Sdílet prostřednictvím


Aspekty multitaskingu

Doporučeným vodítkem je použít co nejmenší počet vláken, čímž minimalizujete využití systémových prostředků. Tím se zlepší výkon. Multitasking má požadavky na prostředky a potenciální konflikty, které je potřeba při návrhu aplikace zvážit. Požadavky na prostředky jsou následující:

  • Systém spotřebovává paměť na informace o kontextu, které vyžadují jak procesy, tak vlákna. Počet procesů a vláken, které lze vytvořit, je proto omezený dostupnou pamětí.
  • Sledování velkého počtu vláken spotřebovává významný čas procesoru. Pokud existuje příliš mnoho vláken, většina z nich nebude moct výrazně postupovat. Pokud je většina aktuálních vláken v jednom procesu, vlákna v jiných procesech jsou naplánována méně často.

Poskytnutí sdíleného přístupu k prostředkům může způsobit konflikty. Abyste se jim vyhnuli, musíte synchronizovat přístup ke sdíleným prostředkům. To platí pro systémové prostředky (například komunikační porty), prostředky sdílené více procesy (jako jsou popisovače souborů) nebo prostředky jednoho procesu (například globální proměnné) přístupné více vlákny. Selhání správné synchronizace přístupu (ve stejných nebo v různých procesech) může vést k problémům, jako jsou zablokování a podmínky časování. Synchronizační objekty a funkce, které můžete použít ke koordinaci sdílení prostředků mezi více vlákny. Další informace o synchronizaci naleznete v tématu Synchronizace provádění více vláken. Snížení počtu vláken usnadňuje a efektivnější synchronizaci prostředků.

Dobrým návrhem pro vícevláknovou aplikaci je server typu pipeline. V tomto návrhu vytvoříte jedno vlákno na procesor a sestavíte fronty požadavků, pro které aplikace udržuje kontextové informace. Vlákno zpracuje všechny požadavky ve frontě, než se přesune ke zpracování požadavků v další frontě.