Többszálú feldolgozás alapjai
A könyvet a C # programozásában érdekelt olvasók széles köre számára tervezték. Írjon be egy rövid jegyzetet
Könyv: C # 4.0: A teljes útmutató
Többszálú feldolgozás alapjai
Többszálú feldolgozás alapjai
Különbségek a multitasking alapuló folyamatok és szálak a következőképpen foglalható össze: a multitasking alapú folyamatok szervezésében, a párhuzamos végrehajtás programok, és az áramlás alapú multitasking - párhuzamos végrehajtás egyes részei egy programot.
A fő előnye, többszálas, hogy lehetővé teszi, hogy írjon programok hatékonyan működik azzal a képességgel, hogy kihasználja az állásidőt, hogy elkerülhetetlenül végrehajtása során a legtöbb program. Mint tudják, a legtöbb I / O eszköz, függetlenül attól, hogy a hálózati portokhoz, lemezmeghajtókhoz vagy billentyűzetekhez csatlakoztatott eszközök sokkal lassúbbak-e a CPU-nál (CPU). Ezért a legtöbb esetben a programnak várnia kell az adatok I / O eszközre történő küldésére vagy információinak vételére. A többszálas feldolgozásnak köszönhetően a program más feladatokat is megoldhat a kényszerített leállások idején. Például, miközben a program egy része egy internetkapcsolaton keresztül küld fájlt, egy másik része képes olvasni a billentyűzetből beírt szöveges információkat, a harmadik pedig a következő adatblokkot tompítja.
A .NET-keretrendszerben kétféle szál definiálható: prioritás és háttér. Alapértelmezés szerint a létrehozott szál automatikusan prioritássá válik, de háttérszálaként is létrehozható. Az elsőbbségi szálak és a háttérszálak közötti egyetlen különbség az, hogy a háttérszál automatikusan megszűnik, ha az összes elsőbbségi szál megáll a folyamatban.
A multitasking folyamatok áramlással történő megszervezésével kapcsolatban különleges típusú módra van szükség, amelyet szinkronizációnak neveznek, és lehetővé teszi az áramlások végrehajtásának pontos összehangolását. A szinkronizáláshoz a C # külön alrendszert biztosít, amelynek fő eszközeit ebben a fejezetben tárgyaljuk.
Minden folyamat legalább egy szálból áll, amelyet általában a fő szálnak hívnak, mivel elindítja a program végrehajtását. Ezért a fő szálban a fenti program példák végrehajtásra kerültek. Más szálakat is létrehozhat a fő szálból.
Mind a C #, mind a .NET Framework támogatja a többféle feladatok mindkét típusát: folyamatalapú és szálalapú. Ezért a C # használatával létrehozhat mindkét folyamatot és szálat, és mindkettőt kezelheti. Egy új folyamat elindításához a programozóból kis erőfeszítésre van szükség, mivel minden korábbi folyamat teljesen le van választva a későbbiekről. Sokkal fontosabb az a támogatás, C # többszálú feldolgozás, amely révén egyszerűsíti az írás nagy teljesítményű, többszálú programozás C #, mint néhány más nyelveken.
A többszálas programozást támogató osztályok a System.Threading névtérben vannak meghatározva. Ezért a C # összes többszálú programja a következő kódsorozatot tartalmazza.