forum.rastrnet.ru

forum.rastrnet.ru (http://forum.rastrnet.ru/index.php)
-   Программируем (http://forum.rastrnet.ru/forumdisplay.php?f=35)
-   -   Потоки (http://forum.rastrnet.ru/showthread.php?t=43479)

dmitriyart 11.05.2008 11:10

Потоки
 
Имеется 2 потока. Как вручную распределить эти птоки по разным ядрам в Delphi?

TiRex 11.05.2008 12:56

А этим разве не операционая система занимается?

dmitriyart 11.05.2008 17:45

потоки
 
Цитата:

Сообщение от TiRex (Сообщение 631474)
А этим разве не операционая система занимается?

Мне сказали, что ОС может распределить потоки по разным ядрам, а может и нет, на ее усмотрение. Поэтому надо вручную разпределять потоки.

Casy 12.05.2008 13:30

Погугли инфу о WMI.
Про распределение по разным ядрам если не задаешь явно тебя не обманули. Как ОСи захотелось, так она и сделала. Однажды наблюдал картину - прога грузит проц задачей где-то на пол часа. Запускаешь диспетчер задач, и видишь - от запуска к запуску проц то наполовину занят, то целиком.

COBEHOK 19.05.2008 17:05

ОС вообще старается загружать процессоры равномерно, в зависимости от колчиства потоков и их загрузки. Для более тонкой настройки можно использовать вот эти функции:

DWORD SetThreadIdealProcessor(HANDLE hThread, DWORD dwIdealProcessor);
Можно задать на каком процессоре тебе хотелось-бы выполнять указанный тред (это необязательное условие, а настойчивое пожелание. Для обязательного условия смотреть на следующие две функции)

DWORD_PTR SetThreadAffinityMask(HANDLE hThread, DWORD_PTR dwThreadAffinityMask);
На каких процессорах тебе хотелось-бы выполнять поток (какой именно процессор, из указанных, будет выбирать ОС)

BOOL SetProcessAffinityMask(HANDLE hProcess, DWORD_PTR dwProcessAffinityMask);
На каких процессорах будут выполнятся все потоки процесса (какой именно процессор, из указанных, будет выбирать ОС)


Текущее время: 09:51. Часовой пояс GMT +7.

Powered by vBulletin® Version 3.8.4 Patch Level 5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot

Форум открыт в июле 2004 г.