Каково различие между привязкой потока и привязкой процесса?

Каково различие между привязкой потока и привязкой процесса?

Если у меня есть два потока, и у меня есть двухъядерная машина, затем это возможный выполнить эти два потока параллельно на этих двух ядрах?

Если я использую маску привязки процессора затем, я могу управлять выполнением процесса на ядрах, но когда я должен выполнить потоки на конкретном ядре, как я могу сделать эти потоки ядром конкретный?

Будет цениться очень простой пример.

12
задан ЯegDwight 24 March 2010 в 12:47
поделиться

2 ответа

В чем разница между сродством потоков и сродством процессов?

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

Если у меня два потока и машина с дуэльным ядром, то можно ли запустить эти два потока параллельно на двух ядрах?

Да, возможно, но в большинстве случаев вы действительно должны позволить операционной системе решать ... скорее всего он умнее тебя.

Если я использую маску сродства процессора, я могу управлять выполнением процесса на ядрах, но когда мне нужно запускать потоки на определенном ядре, как я могу сделать эти потоки специфичными для ядра?

Вам придется использовать p / вызвать неуправляемую функцию SetThreadAffinityMask () , а затем использовать Thread.BeginThreadAffinity () , чтобы гарантировать, что управляемый поток остается с конкретным потоком ОС. Но вы действительно не хотите этого делать!

4
ответ дан 2 December 2019 в 23:42
поделиться

Я не знаю, можно ли установить сходство потоков в .net, поэтому среда решает, какие потоки запускать на каком ядре.

0
ответ дан 2 December 2019 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: