Реферат: Паралельноє програмирование
public delegate void ThreadStart();
Виклик методу Start починає виконання потоку. Потік триває до виходу з виконуваного методу. Ось приклад, що використовує повний синтаксис C# для створення делегата ThreadStart :
class| ThreadTest|
{
static| void| Main|()
{
Thread| t = new| Thread|(new| ThreadStart|(Go|));
t.Start(); // Виконати Go|() у новому потоці.
Go|(); // Одночасно запустити Go|() у головному|чільному| потоці.
}
static void Go() { Console.WriteLine("hello!"); }
В даному прикладі потік виконує метод Go () одночасно з головним потоком. Результат – два майже одночасних «hello»:
hello|! hello|!
2.2 Засоби|кошти| синхронізації в мові С#
У наступних|таких| таблицях приведена інформація про інструменти С# для координації (синхронізації) потоків:
Конструкція | Призначення |
Sleep |
Блокування на вказаний час |
Join |
Чекання закінчення іншого потоку |
Табл. 2.1 Прості методи блокування
Конструкція | Призначення | Доступна з інших процесів? | Швидкість |
Lock |
Гарантує, що лише один потік може дістати доступ до ресурсу або секції коди. |
немає |
швидко |
Mutex |
Гарантує, що лише один потік може дістати доступ до ресурсу або секції коди. Може використовуватися для запобігання запуску декількох екземплярів додатка. |
так |
середня |
Semaphore |
Гарантує, що не більш заданого числа потоків може дістати доступ до ресурсу або секції коди. |
так |
К-во Просмотров: 193
Бесплатно скачать Реферат: Паралельноє програмирование
|