пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Понятие потоков. Виды многопоточности. Использование и управление потоками.

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

Потоки имеют следующие свойства:

  • Потоки позволяют программе выполнять параллельную обработку.
  • Пространство имен .NET Framework System.Threading упрощает использование потоков.
  • Потоки используют одни и те же ресурсы приложения. Дополнительные сведения см. в разделе Использование потоков и работа с потоками.

По умолчанию программа на языке C# имеет один поток. Однако параллельно основному потоку могут создаваться и использоваться вспомогательные потоки. Эти потоки часто называются рабочими потоками.

         Рабочие потоки могут использоваться для выполнения трудоемких или срочных задач без прерывания основного потока. Например, рабочие потоки часто используются в серверных приложениях для выполнения входящих запросов, не дожидаясь завершения выполнения предыдущего запроса. Рабочие потоки также используются для выполнения "фоновых" задач в настольных приложениях, что позволяет основному потоку (который отвечает за элементы пользовательского интерфейса) оставаться доступным для команд пользователя.

Виды потоков

         • потоки опорных хранилищ — потоки, жестко привязанные к конкретным типам опорных хранилищ, такие как FileStream или NetworkStream

         • потоки-декораторы — наполняют другие потоки, трансформируя данные тем или иным способом, такие как DeflateStream или CryptoStream

         Разделение потоков позволяет решить проблемы с пропускной способностью и быстротой ответа системы, однако при этом возникают проблемы совместного использования ресурсов, в частности взаимоблокировки и состояния гонки.          Основной функционал для использования потоков в приложении сосредоточен в пространстве имен System.Threading. В нем определен класс, представляющий отдельный поток - класс Thread.

         Класс Thread определяет ряд методов и свойств, которые позволяют управлять потоком и получать информацию о нем. В процессе работы потока его статус многократно может измениться под действием методов. Так, в самом начале еще до применения метода Start его статус имеет значение Unstarted. Запустив поток, мы изменим его статус на Running. Вызвав метод Sleep, статус изменится на WaitSleepJoin. А применяя метод Abort, мы тем самым переведем поток в состояние AbortRequested, а затем Aborted, после чего поток окончательно завершится.

Приоритеты потоков располагаются в перечислении ThreadPriority: Lowest, BelowNormal, Normal, AboveNormal, Highest

По умолчанию потоку задается значение Normal. Однако мы можем изменить приоритет в процессе работы программы.

 

 


14.01.2019; 12:24
хиты: 119
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь