![]() |
![]() |
#1 |
Новичок
Регистрация: 16.03.2008
Сообщений: 20
|
![]()
Имеется 2 потока. Как вручную распределить эти птоки по разным ядрам в Delphi?
|
![]() |
![]() |
![]() |
#2 |
Red Machine!
Регистрация: 18.07.2004
Сообщений: 1,401
|
![]()
А этим разве не операционая система занимается?
__________________
1: Андрей, я тебя ненавижу! 2: Хм, надо же. А кого ненавижу я? А давай угадывать? |
![]() |
![]() |
![]() |
#3 |
Новичок
Регистрация: 16.03.2008
Сообщений: 20
|
![]() |
![]() |
![]() |
![]() |
#4 |
Программист
|
![]()
Погугли инфу о WMI.
Про распределение по разным ядрам если не задаешь явно тебя не обманули. Как ОСи захотелось, так она и сделала. Однажды наблюдал картину - прога грузит проц задачей где-то на пол часа. Запускаешь диспетчер задач, и видишь - от запуска к запуску проц то наполовину занят, то целиком. |
![]() |
![]() |
![]() |
#5 |
Новичок
Регистрация: 17.08.2004
Сообщений: 780
|
![]()
ОС вообще старается загружать процессоры равномерно, в зависимости от колчиства потоков и их загрузки. Для более тонкой настройки можно использовать вот эти функции:
DWORD SetThreadIdealProcessor(HANDLE hThread, DWORD dwIdealProcessor); Можно задать на каком процессоре тебе хотелось-бы выполнять указанный тред (это необязательное условие, а настойчивое пожелание. Для обязательного условия смотреть на следующие две функции) DWORD_PTR SetThreadAffinityMask(HANDLE hThread, DWORD_PTR dwThreadAffinityMask); На каких процессорах тебе хотелось-бы выполнять поток (какой именно процессор, из указанных, будет выбирать ОС) BOOL SetProcessAffinityMask(HANDLE hProcess, DWORD_PTR dwProcessAffinityMask); На каких процессорах будут выполнятся все потоки процесса (какой именно процессор, из указанных, будет выбирать ОС)
__________________
Одним фломастером можно раскрасить почти все. Двумя - вообще все! Последний раз редактировалось COBEHOK; 19.05.2008 в 20:42. |
![]() |
![]() |
![]() |
![]() |
![]() |
|