Может ли thread выполняться на разных ядрах?
От: Аноним  
Дата: 16.02.11 21:25
Оценка:
Вот такая проблема на ум пришла.
Есть несколько потоков, которых в основном ждут event и ничего не делают.
И вдруг два из них получают тяжелую задачу, отъедающую много процессорного времени: первый вычисляет while(true) { } , а второй сортирует пузырьком 2 млрд строк.

Может ли винда растащить два потока по разным ядрам, если они были созданы и выполнялись на каком-то одном?
Re: Может ли thread выполняться на разных ядрах?
От: ononim  
Дата: 16.02.11 21:48
Оценка: +3
А>Может ли винда растащить два потока по разным ядрам, если они были созданы и выполнялись на каком-то одном?
да конечно
Как много веселых ребят, и все делают велосипед...
Re[2]: Может ли thread выполняться на разных ядрах?
От: Сергей Мухин Россия  
Дата: 17.02.11 06:08
Оценка: +1
Здравствуйте, ononim, Вы писали:

А>>Может ли винда растащить два потока по разным ядрам, если они были созданы и выполнялись на каком-то одном?

O>да конечно

Когда потоки создаются, они не привязываются к конкретному ядру (если процесс не привязан), так что вопрос излишен. Но привязать можно руками (обычно не рекомендуется) см SetThreadAffinityMask.
---
С уважением,
Сергей Мухин
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.