[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