Главная » Все файлы » Просмотр файлов из архивов » Документы » Межпроцессорное взаимодействие и многопоточность в .NET (реферат)

Межпроцессорное взаимодействие и многопоточность в .NET (реферат)

2015-08-23СтудИзба

Описание файла

Документ из архива "Межпроцессорное взаимодействие и многопоточность в .NET (реферат)", который расположен в категории "". Всё это находится в предмете "параллельные системы и параллельные вычисления" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "параллельные системы и параллельные вычисления" в общих файлах.

Онлайн просмотр документа "Межпроцессорное взаимодействие и многопоточность в .NET (реферат)"

Текст из документа "Межпроцессорное взаимодействие и многопоточность в .NET (реферат)"







Оглавление





Класс Thread. 4

Общая информация. 4

Thread – составляющие 6

Свойства 6

Методы 13

Класс Process 18

Общая информация. 18

Process – составляющие 19

Свойства 19

Методы 19

Класс WaitHandle 22

Общая информация. 22

WaitHandle – составляющие 23

Поля 23

Свойства 23

Методы 23

Класс Mutex 24

Общая информация. 24

Mutex – составляющие 25

Свойства 25

Методы 25

Класс AutoResetEvent 28

Общая информация. 28

AutoResetEvent – составляющие 29

Методы 29

Класс ManualResetEvent 31

Общая информация. 31

ManualResetEvent – составляющие 32

Методы 32

Класс Monitor 36

Общая информация. 36

Monitor – составляющие 37

Методы 37

Класс Semaphore 40

Общая информация. 40

Semaphore – составляющие 40

Свойства 40

Методы 41

Список литературы 44





Класс Thread.

Общая информация.

Описание:

Создает и контролирует поток, задает его приоритет и возвращает его статус.

Список всех членов этого типа представлен в разделе Thread - члены.

Процесс может создавать один или более потоков для выполнения частей программного кода, связанного с процессом. Следует использовать делегат ThreadStart для задания программного кода, выполняемого потоком.

В течение своего существования поток всегда находится в одном или более состояниях, определенных в классе ThreadState. Для потока можно запрашивать планирование уровня приоритета, который определяется классом ThreadPriority, но не гарантируется, что операционная система предоставит его.

Список всех состояний ThreadState:

 

Состояние

Описание состояния

Aborted

Поток находиться в состоянии Stopped

Background

Поток был запущен как фоновый. Данное состояние контролируется свойством Thread.IsBackground

Running

Поток начал работу и он не блокирован

Stopped

Поток завершил работу 

Suspended

Поток ожидает старта 

Unstarted

Поток не начал работу, так как метод Thread.Start не был вызван

WaitSleepJoin

Поток блокирован в результате вызова методов Thread.Wait, Thrad.Sleep, Thread.Join





Таблица изменения состояний:

Действие изменяющее состояние

Состояние

Поток создается общеязыковой средой выполнения

Unstarted

Поток вызывает метод Start

Unstarted

Поток выполняется

Running

Поток вызвал метод Sleep

WaitSleepJoin

Поток вызвал метод Wait

WaitSleepJoin

Поток вызвал метод Join

WaitSleepJoin

Другой поток вызвал метод Interrupt

Running

Поток реагирует на запрос Suspend

Suspended

Другой поток вызвал метод Resume

Running

Поток реагирует на запрос Abort

Stopped

Поток остановлен

Stopped

(Более подробно и всеобъемлюще потоки рассматриваются в [8])

Иерархия:

System.Object
   System.Threading.Thread

Определение:

[C#]

public sealed class Thread

Потокобезопасность:

Этот тип можно безопасно использовать в многопоточных операциях.

Thread – составляющие

Примечание: в данном разделе рассмотрены наиболее важные члены класса Thread. (Более полную информацию можно найти в [3, 4, 6])

Свойства

 

Имя

Описание

CurrentThread

Возвращает поток, выполняющий в данный момент текущий участок кода.

IsAlive

Возвращает true, если поток стартовал и еще не завершил свою работу. Иначе возвращает false.

IsBackground

Возвращает или задает значение, показывающее, является ли поток фоновым (подробности в примере №3 данного раздела).

Name

Возвращает или задает имя потока.

Priority

Возвращает или задает значение, указывающее на планируемый приоритет потока.

ThreadState

Возвращает значение, содержащее состояния текущего потока.



Определение:

[C#]

public static Thread CurrentThread {get;}

public bool IsAlive {get;}

public bool IsBackground {get; set;}

public string Name {get; set;}

public ThreadPriority Priority {get; set;}

public ThreadState ThreadState {get;}

Примеры:

1) В следующем примере кода показаны простейшие функциональные возможности работы с потоками.

using System;

using System.Threading;

//Запустим статический метод во втором потоке

public class ThreadExample

{

//Метод вызываеться когда поток стартует.

//Проходит десять итераций,пишет на консоль

//и выходит

public static void ThreadProc()

{

for (int i = 0; i < 10; i++)

{

Console.WriteLine("ThreadProc: {0}", i);

Thread.Sleep(0);

}

}

public static void Main()

{

Console.WriteLine("Main thread: Start a second thread.");

//Создаем новый поток. В качестве входного параметра

//передаем конструктору делегат на функцию

Thread t = new Thread(new ThreadStart(ThreadProc));

//Запускаем поток

t.Start();

//Thread.Sleep(0);

//Четыре итерации вывода на консоль

for (int i = 0; i < 4; i++)

{

Console.WriteLine("Main thread: Do some work.");

Thread.Sleep(0);

}

Console.WriteLine("Main thread: Call Join(), to wait until ThreadProc ends.");

//Вызоваем join для того чтоподождать окончания работы ThreadProc

t.Join();

Console.WriteLine("Main thread: ThreadProc.Join has returned. Press Enter to end program.");

Console.ReadLine();

}

}

Выходная информация:

Этот код формирует выходные данные, подобные приведенным ниже:

Main thread: Start a second thread.

Main thread: Do some work.

ThreadProc: 0

Main thread: Do some work.

ThreadProc: 1

Main thread: Do some work.

ThreadProc: 2

Main thread: Do some work.

ThreadProc: 3

Main thread: Call Join(), to wait until ThreadProc ends.

ThreadProc: 4

ThreadProc: 5

ThreadProc: 6

ThreadProc: 7

ThreadProc: 8

ThreadProc: 9

Main thread: ThreadProc.Join has returned. Press Enter to end program.

2)Пример изменения и использования свойств Priotiry, Name, CurrentThread

using System;

using System.Threading;

class Test

{

static void Main()

{

PriorityTest priorityTest = new PriorityTest();

ThreadStart startDelegate =

new ThreadStart(priorityTest.ThreadMethod);

//Создаем потоки

Thread threadOne = new Thread(startDelegate);

threadOne.Name = "ThreadOne";

Thread threadTwo = new Thread(startDelegate);

threadTwo.Name = "ThreadTwo";

//Выставляем приоритет

threadTwo.Priority = ThreadPriority.BelowNormal;

//Запускаем потоки

threadOne.Start();

threadTwo.Start();

// Позвляем считать в течение 10 секунд

Thread.Sleep(10000);

priorityTest.LoopSwitch = false;

}

}

class PriorityTest

{

bool loopSwitch;

public PriorityTest()

{

loopSwitch = true;

}

public bool LoopSwitch

{

set { loopSwitch = value; }

}

public void ThreadMethod()

{

long threadCount = 0;

while (loopSwitch)

{

threadCount++;

}

//Вывод в консоль

Console.WriteLine("{0} with {1,11} priority " +

"has a count = {2,13}", Thread.CurrentThread.Name,

Thread.CurrentThread.Priority.ToString(),

threadCount.ToString("N0"));

}

}

Выходная информация:

ThreadTwo with BelowNormal priority has a count = 1 223 260 335

ThreadOne with Normal priority has a count = 1 293 215 035



3) Создание потоков в фоновом режиме. Использование свойства IsBackground.

Приоритетные потоки (foreground) обеспечивают текущему приложению защиту от преждевременного завершения. Среда CLR не прекратит работу приложения (не выгрузит соответствующий домен приложения), пока не завершат работу все приоритетные потоки.

Фоновые потоки (background) рассматриваются средой CLR, как возобновляемые ветви выполнения, которыми можно пренебречь в любой момент времени (даже при выполнении ими своих задач). Поэтому, когда все приоритетные потоки завершаются, все фоновые потоки будут завершены автоматически в результате выгрузки домена приложения (больше информации можно получить в [4])

using System;

using System.Threading;

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее