threading
От: stepi4  
Дата: 10.10.07 12:48
Оценка:
У меня есть четырехядерный процессор, сколько потоков может обрабатывать домен приложения? Есть ли какие-нибудь способы динамически определять доступные ресурсы на машине и исходя из этого создавать оптимальное количество потоков и участков памяти для обработки какой-нибудь поступающей информации?
Re: threading
От: GlebZ Россия  
Дата: 10.10.07 13:00
Оценка:
Здравствуйте, stepi4, Вы писали:

S>У меня есть четырехядерный процессор, сколько потоков может обрабатывать домен приложения? Есть ли какие-нибудь способы динамически определять доступные ресурсы на машине и исходя из этого создавать оптимальное количество потоков и участков памяти для обработки какой-нибудь поступающей информации?

Определение кол-ва процессоров — Environment.ProcessorCount
Стандартный ThreadPool — 25 потоков на каждый процессор. Но оптимальность загрузки — сильно зависит от решаемой задачи.
Re[2]: threading
От: Lloyd Россия  
Дата: 10.10.07 15:45
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Стандартный ThreadPool — 25 потоков на каждый процессор.

... по умолчанию.
Re[2]: threading
От: stepi4  
Дата: 10.10.07 19:41
Оценка:
спасибо за инфу, а оптимальное число потоков по идее равно кол-ву процессоров?

Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, stepi4, Вы писали:


S>>У меня есть четырехядерный процессор, сколько потоков может обрабатывать домен приложения? Есть ли какие-нибудь способы динамически определять доступные ресурсы на машине и исходя из этого создавать оптимальное количество потоков и участков памяти для обработки какой-нибудь поступающей информации?

GZ>Определение кол-ва процессоров — Environment.ProcessorCount
GZ>Стандартный ThreadPool — 25 потоков на каждый процессор. Но оптимальность загрузки — сильно зависит от решаемой задачи.
Re[3]: threading
От: сипласплас  
Дата: 10.10.07 20:07
Оценка:
Здравствуйте, stepi4, Вы писали:

S>спасибо за инфу, а оптимальное число потоков по идее равно кол-ву процессоров?


Рабочих потоков. IO не в счет.

[]
Re[3]: threading
От: _vvs Россия  
Дата: 11.10.07 07:04
Оценка:
Здравствуйте, stepi4, Вы писали:

S>спасибо за инфу, а оптимальное число потоков по идее равно кол-ву процессоров?


Мне кажется этот вопрос в каждом приложении решается по-своему (imho)
Если у вас задача такая, что поток может заблокироваться на большой промежуток времени, то возможно количество потоков должно быть большим, нежели количество процессоров. Иначе система может встать в ступор

<offtopic>
Сейчас, кстати, в разделе "философия программирования"

remark

поднял тему, обсуждающую правильное построение многопоточных программ для многопроцессорных машин. Может быть вам это покажется интересным
</offtopic>

Удачи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.