forum.rastrnet.ru  

Вернуться   forum.rastrnet.ru > Компьютеры и всё, что с ними связано > Программируем

 Сообщения за день       Добавить альбом       Поиск      Правила форума  


Ответ
 
Опции темы Опции просмотра
Старый 11.05.2008, 11:10   #1
dmitriyart
Новичок
 
Регистрация: 16.03.2008
Сообщений: 20
По умолчанию Потоки

Имеется 2 потока. Как вручную распределить эти птоки по разным ядрам в Delphi?
dmitriyart вне форума   Ответить с цитированием
Старый 11.05.2008, 12:56   #2
TiRex
Red Machine!
 
Аватар для TiRex
 
Регистрация: 18.07.2004
Сообщений: 1,401
По умолчанию

А этим разве не операционая система занимается?
__________________
1: Андрей, я тебя ненавижу!
2: Хм, надо же. А кого ненавижу я? А давай угадывать?
TiRex вне форума   Ответить с цитированием
Старый 11.05.2008, 17:45   #3
dmitriyart
Новичок
 
Регистрация: 16.03.2008
Сообщений: 20
По умолчанию потоки

Цитата:
Сообщение от TiRex Посмотреть сообщение
А этим разве не операционая система занимается?
Мне сказали, что ОС может распределить потоки по разным ядрам, а может и нет, на ее усмотрение. Поэтому надо вручную разпределять потоки.
dmitriyart вне форума   Ответить с цитированием
Старый 12.05.2008, 13:30   #4
Casy
Программист
 
Аватар для Casy
 
Регистрация: 18.07.2004
Сообщений: 455
Отправить сообщение для Casy с помощью ICQ
По умолчанию

Погугли инфу о WMI.
Про распределение по разным ядрам если не задаешь явно тебя не обманули. Как ОСи захотелось, так она и сделала. Однажды наблюдал картину - прога грузит проц задачей где-то на пол часа. Запускаешь диспетчер задач, и видишь - от запуска к запуску проц то наполовину занят, то целиком.
Casy вне форума   Ответить с цитированием
Старый 19.05.2008, 17:05   #5
COBEHOK
Новичок
 
Регистрация: 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.
COBEHOK вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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


Powered by vBulletin® Version 3.8.4 Patch Level 5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Форум открыт в июле 2004 г.
Кошки и котята Красноярска и Сибири Живой Мир Сибири