
- •Оглавление
- •Класс Thread. Общая информация.
- •Thread – составляющие
- •Свойства
- •1) В следующем примере кода показаны простейшие функциональные возможности работы с потоками.
- •2)Пример изменения и использования свойств Priotiry, Name, CurrentThread
- •3) Создание потоков в фоновом режиме. Использование свойства IsBackground.
- •4) Ключевое слово lock
- •Interrupt(), Sleep(), SpinWait(), Join()
- •Класс Process Общая информация.
- •Process – составляющие Свойства
- •Примеры:
- •Класс WaitHandle Общая информация.
- •WaitHandle – составляющие Поля
- •Свойства
- •Класс Mutex Общая информация.
- •Mutex – составляющие Свойства
- •Примеры
- •Класс AutoResetEvent Общая информация.
- •AutoResetEvent – составляющие Методы
- •Примеры
- •Класс ManualResetEvent Общая информация.
- •ManualResetEvent – составляющие Методы
- •Примеры
- •Класс Monitor Общая информация.
- •Monitor – составляющие Методы
- •Класс Semaphore
- •Список литературы
Оглавление
Класс 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
Потокобезопасность:
Этот тип можно безопасно использовать в многопоточных операциях.