CLR поток информации о модели? - PullRequest
2 голосов
/ 06 августа 2011

Я хотел бы знать, как System.Threading.Thread работает в CLR. Я предполагаю, что потоки в CLR «легковесны», то есть они сопоставлены многие к одному с потоками ядра ... но кто планирует эти потоки? Когда я создаю поток, всегда ли он создает соответствующий поток «ядра», если количество потоков не превышает количество физических ядер? Это пытается запланировать эти потоки на доступных ядрах? Любая информация / источники приветствуются.

Ответы [ 3 ]

3 голосов
/ 06 августа 2011

Вы можете проверить SSCLI.Это общедоступные источники CLR 2.0 в C ++, также называемом проектом ROTOR.Это единственное место, которое откроет правду:)

UPD: в комментариях есть подсказки, где найти реальную вещь в РОТОРЕ, если кому-то интересно;)

2 голосов
/ 06 августа 2011

* MSDN 1002 *:

ThreadId операционной системы не имеет фиксированной связи с управляемым потоком, поскольку неуправляемый хост может контролировать отношения между управляемыми и неуправляемыми потоками. В частности, сложный хост может использовать Fiber API для планирования множества управляемых потоков в одном потоке операционной системы или для перемещения управляемого потока между различными потоками операционной системы.

0 голосов
/ 06 августа 2011

нет "окончательного ответа / документации" на это ...

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...