Показать сообщение отдельно

  #28  
Старый 22.05.2010, 22:58
Ildon
Познающий
Регистрация: 13.04.2010
Сообщений: 66
С нами: 8463444

Репутация: 2
По умолчанию

Цитата:
Сообщение от flacs  
Внесу ясность

На самом деле потоки не умножают CPU, (по крайней мере на однопроцессорных машинах) суть в том система, чтобы равномерно обслуживать каждый поток (а в приложении(процессе) их может быть сколько угодно), выделяет кванты времени, чтобы дать выполнить пару машинных команд, ну или сколько успеет. Из за этого возникает иллюзия того, что все выполняться паралельно, хотя на самом деле системе потребуется столько же врмени для обработки одно и той же операции. Потоки лишь в некоторых случаях дают выигрыш, в частности потоки дают ощутимый результат, когда опрашивают порты, или устройства. Именно поэтому потоки дают не более 10%-15% прирост производительности, например при опросе узлов в интренете, связи с прокси серверами и т.д. И абослютно такой же код написанный в конструкции for, while, repeat, выполняется медленней, чем при использовании функций CreateThread, ExitThread, SetThreadContext, GetThreadContext, TerminateThread, и их обработчиков.
Хм , спасибо узнал много нового
 
Ответить с цитированием