|
Вопрос # 2 913/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Вопрос по потокам: Если есть многопоточное приложение на Delphi под windows, то какое количество процессоров его могут одновременно обслуживать. То есть могут ли потоки одного процесса (следовательно, в одном адресном пространстве) обрабатываться разными процессорами в многоядерных системах? Или же по процессорам разделяются только процессы?
 |
Вопрос задал: Roman Novikov (статус: Посетитель)
Вопрос отправлен: 15 июня 2009, 01:44
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Roman Novikov!
Всё зависит от операцинной системы. Windows может распределять потоки между процессорами и будет это делать, если явно не привязать к одному процессору/ядру.
То есть, планирование работы потоков идет на уровне потоков, а не приложения.
Другое дело, сколько операционная система может использовать процессоров. 2000 точно хорошо умеет работать с двумя процессорами (двохядерный - это почти двухпроцессорный). хр уже хорошо работает с 4. по поводу старших моделей точно не знаю, но могу точно сказать, что в внутренностях 2000/хр больше 32 процессоров/ядер не поддерживает нормально, хотя могу и ошибаться.
"Если есть многопоточное приложение на Delphi под windows, то какое количество процессоров его могут одновременно обслуживать."
Все, до которых операционная система может получить доступ. А вот как распределит - это уже её проблема.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 15 июня 2009, 01:59
Оценка за ответ: 5
Комментарий к оценке: То есть если у меня многопоточное серверное приложение c компонентом TIdTCPServer стоит на машине с Core2Quad с ОС WinXP, то все 4 ядра будут делить между собой потоки?
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 15 июня 2009, 18:48; участников в обсуждении: 2.
|
Вадим К (статус: Академик), 15 июня 2009, 16:23 [#1]:
"То есть если у меня многопоточное серверное приложение c компонентом TIdTCPServer стоит на машине с Core2Quad с ОС WinXP, то все 4 ядра будут делить между собой потоки?"
в оптимистичном прогнозе - да.
Но операционная система может использовать 3 ядра. Особо думать об этом не стоит.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Пупкин В В (статус: 2-ой класс), 15 июня 2009, 17:59 [#2]:
можно самому указать системе на каком ядре работает поток
|
|
Вадим К (статус: Академик), 15 июня 2009, 18:48 [#3]:
Можно, я об этом писал, но не стоит.
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|