Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A többfeladatos munkavégzés kétféleképpen valósítható meg: egyetlen folyamat több szálból vagy több folyamatból, amelyek mindegyike egy vagy több szálból áll. Az alkalmazások a saját folyamatukba helyezhetik azokat a szálakat, amelyek magáncímteret és privát erőforrásokat igényelnek, hogy megvédjék őket más folyamatszálak tevékenységeitől.
A többszálas folyamatok egymást kizáró feladatokat kezelhetnek szálakkal, például felhasználói felület biztosításával és háttérszámításokkal. Többszálú folyamat létrehozása kényelmes módszer lehet egy olyan program felépítésére is, amely egyszerre több hasonló vagy azonos feladatot hajt végre. Egy elnevezett csőkiszolgáló például létrehozhat egy szálat minden olyan ügyfélfolyamathoz, amely a csőhöz csatlakozik. Ez a szál kezeli a kiszolgáló és az ügyfél közötti kommunikációt. A folyamat több szálat is használhat a következő feladatok végrehajtásához:
- Több ablak bemenetének kezelése.
- Több kommunikációs eszköz bemenetének kezelése.
- Különböző prioritású feladatok megkülönböztetése. A magas prioritású szálak például az idő szempontjából kritikus feladatokat kezelik, az alacsony prioritású szálak pedig más feladatokat is végrehajtanak.
- Lehetővé teszi, hogy a felhasználói felület rugalmas maradjon, miközben időt biztosít a háttérfeladatokra.
Általában hatékonyabb, ha egy alkalmazás többfeladatos műveletet valósít meg egyetlen, többszálú folyamat létrehozásával, nem pedig több folyamat létrehozásával, az alábbi okokból:
- A rendszer gyorsabban hajt végre környezeti váltást a szálaknál, mint a folyamatoknál, mivel egy folyamatnak nagyobb a terhelése, mint egy szálnak (a folyamatkörnyezet nagyobb, mint a szálkörnyezet).
- A folyamat összes szála azonos címtérrel rendelkezik, és hozzáférhet a folyamat globális változóihoz, ami leegyszerűsítheti a szálak közötti kommunikációt.
- Egy folyamat minden szála megoszthat nyitott fogantyúkat az erőforrások eléréséhez, például fájlokhoz és csövekhez.
Más technikákat is használhat a többszálúság helyett. Ezek közül a legjelentősebbek a következők: aszinkron bemenet és kimenet (I/O), I/O-befejezési portok, aszinkron eljáráshívások (APC) és több esemény várakozási lehetősége.
Egyetlen szál több időigényes I/O-kérést is kezdeményezhet, amelyek egyidejűleg futtathatók aszinkron I/O használatával. Az aszinkron I/O fájlokon, csöveken és soros kommunikációs eszközökön is elvégezhető. További információért lásd: Szinkronizáció és átfedett bemenet és kimenet.
Egyetlen szál blokkolhatja a saját végrehajtását, miközben egy vagy több eseményre vár. Ez hatékonyabb, mint több szál használata, mindegyik egyetlen eseményre vár, és hatékonyabb, mint egyetlen szál használata, amely processzoridőt használ az események folyamatos ellenőrzésével. További információ: Wait Functions.