многонишково

многонишково

Multithreading (известен още като Multithreading) имат в повечето езици за програмиране. Книгите на руски език можете често да идват от другата страна на понятието "нишка" във връзка с "текат". Обикновено "резба" е преведен като "резба", а не "поток", но терминът е повече последователни семантиката поток резба лидер. Ще се обадя да ги потоци.

Какво е поток. Vkratse многозадачна операционна система се осъществява чрез постоянно превключване между различни задачи. Всеки един от тях изпълнява специфична време, но не е наясно с прекъсване на работата си (правилно, ако погрешно). Тук стигаме до operedeleniyu процес. Vypolnyaeiuyu всяка програма може да се нарече процес. Той се идентифицира с главната памет и получава процесорното време за изпълнение.

Flow - задача в рамките на един процес. Поток използва процес памет, т.е. множество нишки в рамките на процеса работи с прилежаща памет за тях, и като резултат, nuzhnayutsya в контролиране на достъпа до данните.

Представете си следната ситуация: нишка изпълнява някои атомни действия изискват много време. Терминът "отнема много време" трябва да се разбира, така че потокът изпълнение на това действие със сигурност ще прекъснат, както и други теми, с достъпа до тези данни, за да могат да се променят данните, работата, която все още не е завършена. В резултат на това от грешките при целостта на данните и правят такива грешки трудно да се открие, защото на вероятността от настъпване (отстраняване на грешки не може да бъде).

Сега можете да отидете директно да работи с потоци в .NET в C #. За стрийминг, което трябва да се свърже с вашия клас пространство от имена System.Threading. Нашата основна цел е класа тема (всъщност "конци"). Потокът е свързано с функцията, която той ще изпълнява по време на работа. Out функция води до zavereshniyu поток.

Помислете за създаване, стартиране и прекратяване на работния процес.
Тема резба = нова Тема (нов ThreadStart (функции));

В скоби посочват делегата съхранява указател към функция поток. Делегатите приеха два типа: приемателна функция за настройка и функции без параметър (ParametrizedThreadStart и ThreadStart, съответно). За делегатите мога да пиша по-късно.

Напред:
thread.Start (); или thread.Start (OBJ); - zupask с или без параметри.
thread.Abort (); - спиране на потока. В този случай, функцията на конеца се генерира ThreadAbortException изключение и ако искате да знаете за преждевременно прекратяване на работния процес, трябва да се справя. Ако не се лекува с нищо страшно няма да се случи.
Суспендира и Резюме са ustrevshimi методи за синхронизация.

За блокиране на движението на потока по някакъв общ обект в паметта, можете да използвате заключването на оператора. В този случай, ако една нишка вече е в ключалката на блок този обект, а другият не може да влезе в него, и ще чака на обекта отключване.