[sisyphus] Re:Как ускорить работу с потоками?

Денис Смирнов =?iso-8859-1?q?mithraen_=CE=C1_freesource=2Einfo?=
Пт Сен 10 18:01:54 MSD 2004


On Fri, Sep 10, 2004 at 02:50:38PM +0400, Boronin Sergey wrote:

 BS> Множество потоков удобны для распараллеливания слабосвязанных между
 BS> собой операций даже в клиентских системах, не говоря уже о серверных.

Опишите мне ситуацию, где нужно несколько сот нитей на x86-машине с одним
процессором. Я не могу себе её представить. 

 BS> А если архитектура изначально закладывается на распараллеливание
 BS> операций то это очень сильно увеличивает ее отклик (который пользователи
 BS> воспринимают как высокое быстродействие) даже на однопроцессорном
 BS> десктопе, не говоря уже об SMP и кластере.

Да ясное дело, что распараллеливать нужно. Только вот процессоров то всё
равно 1-2, а переключение между нитями занимает время. И чем больше нитей,
тем больше времени тратится на переключения вместо работы. Кому это надо?

 BS> Стало интересно, раз если вы потоки называете велосипедами, то, что же
 BS> вы считаете грузовиком?

Зависит от задачи. Для i/o (из-за чего чаще всего пытаются применять
нити, особенно выученые на Windows) они практически не нужны (как я уже
говорил -- нитей чуть боьлше чем процессоров).

Для обработки данных -- да, иногда нужны. Но таки не несколько тысяч
(потому как эффективнее формировать очередь задач и обрабатывать её
небольшим количеством нитей).

-- 
С уважением, Денис

http://freesource.info




Подробная информация о списке рассылки Sisyphus