Többfeladatos munkavégzés szempontjai

Az ajánlott útmutató a lehető legkevesebb szál használata, ezáltal a rendszererőforrások használatának minimalizálása. Ez javítja a teljesítményt. A többfeladatos használat erőforrásigényekkel és lehetséges ütközésekkel rendelkezik, amelyeket figyelembe kell venni az alkalmazás tervezésekor. Az erőforráskövetelmények a következők:

  • A rendszer memóriát használ a folyamatok és szálak által igényelt környezeti információkhoz. Ezért a létrehozható folyamatok és szálak számát a rendelkezésre álló memória korlátozza.
  • A nagy számú szál nyomon követése jelentős processzoridőt használ fel. Ha túl sok szál van, a legtöbbjük nem tud jelentős előrehaladást elérni. Ha az aktuális szálak többsége egy folyamatban van, a többi folyamat szálai ritkábban vannak ütemezve.

Az erőforrásokhoz való megosztott hozzáférés biztosítása ütközéseket okozhat. Ezek elkerülése érdekében szinkronizálnia kell a megosztott erőforrásokhoz való hozzáférést. Ez igaz a rendszererőforrásokra (például kommunikációs portokra), a több folyamat által megosztott erőforrásokra (például fájlleírókra), vagy a több szál által elért egyetlen folyamat erőforrásaira (például globális változókra). A hozzáférés megfelelő szinkronizálásának elmulasztása (ugyanabban vagy különböző folyamatokban) olyan problémákhoz vezethet, mint a holtpont és a versenyfeltételek. Az erőforrások több szál közötti megosztásának koordinálására használható szinkronizálási objektumok és függvények. További információ a szinkronizálásról: Több szál végrehajtásának szinkronizálása. A szálak számának csökkentése megkönnyíti és hatékonyabbá teszi az erőforrások szinkronizálását.

A többszálú alkalmazások jó kialakítása a folyamatkiszolgáló. Ebben a tervben processzoronként egy szálat hoz létre, és olyan kéréssorokat hoz létre, amelyekhez az alkalmazás fenntartja a környezeti információkat. Egy szál feldolgozná az üzenetsor összes kérését, mielőtt feldolgozná a kéréseket a következő üzenetsorban.