![]() |
Потоки
Имеется 2 потока. Как вручную распределить эти птоки по разным ядрам в Delphi?
|
А этим разве не операционая система занимается?
|
потоки
Цитата:
|
Погугли инфу о WMI.
Про распределение по разным ядрам если не задаешь явно тебя не обманули. Как ОСи захотелось, так она и сделала. Однажды наблюдал картину - прога грузит проц задачей где-то на пол часа. Запускаешь диспетчер задач, и видишь - от запуска к запуску проц то наполовину занят, то целиком. |
ОС вообще старается загружать процессоры равномерно, в зависимости от колчиства потоков и их загрузки. Для более тонкой настройки можно использовать вот эти функции:
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. |
Форум открыт в июле 2004 г.