Elementele de bază ale procesării cu mai multe fire

Elementele de bază ale procesării cu mai multe fire

Cartea este concepută pentru o gamă largă de cititori interesați de programarea în C # Introduceți aici o scurtă adnotare

Carte: C # 4.0: Ghidul complet

Elementele de bază ale procesării cu mai multe fire

Elementele de bază ale procesării cu mai multe fire







Diferențele de multitasking bazate pe procese și fire pot fi rezumate după cum urmează: multitasking procese pe bază organizate pentru executarea în paralel a programelor și multitasking bazată pe flux - pentru executarea în paralel a pieselor individuale ale unui singur program.

Principalul avantaj al multithreading este că vă permite să scrie programe care funcționează foarte eficient cu capacitatea de a pârghie timpii morți care apar în mod inevitabil, în timpul executării majoritatea programelor. După cum se știe, cele mai multe dintre dispozitivele de intrare-ieșire, dacă dispozitivele conectate la porturile de rețea, unități de disc, sau o tastatură, sunt mult mai lent decât unitatea centrală de procesare (CPU). Prin urmare, de cele mai multe ori, programul trebuie să aștepte trimiterea datelor către dispozitivul I / O sau primirea de informații de la acesta. Și datorită procesării cu mai multe fire, programul poate rezolva o altă sarcină în timpul perioadelor de întrerupere forțate. De exemplu, în timp ce o parte a programului trimite fișierul prin intermediul unei conexiuni la Internet, pe de altă parte se poate efectua citirea informațiilor de text de la tastatură, iar al treilea - pentru a efectua tamponare a următorul bloc de date transmise.







În .NET Framework sunt definite două tipuri de fire: prioritate și fundal. Implicit, firul creat devine automat o prioritate, dar poate fi realizat ca un fir de fundal. Singura diferență dintre firele de prioritate și firele de fundal este faptul că firul de fundal este terminat automat dacă toate firele de prioritate sunt oprite în procesul său.

În legătură cu organizarea multitasking-ului pe baza fluxurilor, este nevoie de un mod special de mod, care se numește sincronizare și vă permite să coordonați execuția fluxurilor într-un mod destul de specific. Pentru această sincronizare, C # oferă un subsistem distinct, ale cărui principale instrumente sunt discutate în acest capitol.

Toate procesele constau din cel puțin un fir, care de obicei se numește firul principal, de la începerea executării programului. Prin urmare, în firul principal, toate exemplele de programe de mai sus au fost executate. Puteți crea alte fire din firul principal.

Atât C #, cât și .NET Framework acceptă ambele tipuri de multitasking: pe bază de proces și pe bază de fire. Prin urmare, utilizând C #, puteți crea atât procese, cât și fire și puteți gestiona ambele. Pentru a începe un nou proces, este nevoie de un efort mic de la programator, deoarece fiecare proces anterior este complet detașat de cel ulterior. Mult mai important este suportul în C # pentru procesarea cu mai multe fire, ceea ce face mai ușor scrierea programelor de înaltă performanță, multithreaded în C #, comparativ cu alte limbi de programare.

Clasele care suportă programarea cu mai multe șuruburi sunt definite în spațiul de nume System.Threading. Prin urmare, orice program multithreaded din C # include următoarea linie de cod.







Articole similare

Trimiteți-le prietenilor: