| 
| 
 | Вопрос # 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]:Можно, я об этом писал, но не стоит. Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |