Жизненный цикл потока в.NET Framework

Состояние потока в.NET Framework объясняется в этой ссылке.

Недавно я увидел эту картинку на веб-сайте, и у меня возникла пара вопросов:

  1. Жизненный цикл потока в ОС не полностью соответствует жизненному циклу потока в.NET Framework. Может ли кто-то предоставить ресурс, который соответствует состояниям в ОС с.NET Framework?

  2. У нас нет состояния с именем Blocked в.NET Framework. Каково будет состояние потока, если он выдаст запрос ввода-вывода?

  3. Какова цель Прерванного государства? Когда поток вызывает Abort() метод, он перейдет в состояние AbortRequested и после того, как поток ответит на запрос прерывания, он перейдет в состояние Stopped. Так какова функция прерванного состояния?

2 ответа

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

AbortRequested/Stopped Цикл дает потоку возможность выполнить упорядоченное завершение работы, высвободить полученные ресурсы и выполнить другие задачи очистки.

http://www.albahari.com/threading/

Ответы на ваши вопросы:

  1. Я не верю, что это отображение будет настолько полезным, насколько вы, кажется, надеетесь. Я никогда не сталкивался с одним и никогда не нуждался в этом.
  2. Нет реальной необходимости в "заблокированном" состоянии, если только вы не пытаетесь написать что-то вроде детектора тупиковой ситуации (довольно продвинутого). С точки зрения типичного разработчика, состояние "заблокировано" ОС является временным и может быть проигнорировано. (Похоже, ваш код работает, но ОС не имеет ничего общего до получения асинхронного ответа.)
  3. Представьте прерванное состояние как.NET, обеспечивающее обработчик исключений для всего кода в потоке. Когда обнаруживается исключение, в результате которого поток умирает, .NET переводит его в состояние Прервано для вас. В противном случае вы не сможете определить разницу между ненормальным и нормальным завершением потока.
Другие вопросы по тегам