Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 913

Раздел: Delphi » Прочее
/ вопрос открыт /

Приветствую, уважаемые эксперты!
Вопрос по потокам: Если есть многопоточное приложение на Delphi под windows, то какое количество процессоров его могут одновременно обслуживать. То есть могут ли потоки одного процесса (следовательно, в одном адресном пространстве) обрабатываться разными процессорами в многоядерных системах? Или же по процессорам разделяются только процессы?

Roman Novikov Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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]:

Можно, я об этом писал, но не стоит.
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:56
Выполнено за 0.02 сек.