Книга: C# 4.0: полное руководство

Дополнительные средства многопоточной обработки, внедренные в версии .NET Framework 4.0

Дополнительные средства многопоточной обработки, внедренные в версии .NET Framework 4.0

В версии .NET Framework 4.0 внедрен ряд новых средств многопоточной обработки, которые могут оказаться весьма полезными. Самым важным среди них является новая система отмены. В этой системе поддерживается механизм отмены потока простым, вполне определенным и структурированным способом. В основу этого механизма положено понятие признака отмены, с помощью которого указывается состояние отмены потока. Признаки отмены поддерживаются в классе CancellationTokenSource и в структуре CancellationToken. Система отмены полностью интегрирована в новую библиотеку распараллеливания задач (TPL), и поэтому она подробнее рассматривается вместе с TPL в главе 24.

В класс System.Threading добавлена структура SpinWait, предоставляющая методы SpinOnce() и SpinUntil(), которые обеспечивают более полный контроль над ожиданием в состоянии занятости. Вообще говоря, структура SpinWait оказывается непригодной для однопроцессорных систем. А для многопроцессорных систем она применяется в цикле. Еще одним элементом, связанным с ожиданием в состоянии занятости, является структура SpinLock, которая применяется в цикле ожидания до тех пор, пока не станет доступной блокировка. В класс Thread добавлен метод Yield(), который просто выдает остаток кванта времени, выделенного потоку. Ниже приведена общая форма объявления этого метода.

public static bool Yield()

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

Оглавление книги


Генерация: 0.497. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз