Форум: "Потрепаться";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
ВнизБыстродействие потоков Найти похожие ветки
← →
Piter © (2005-09-17 14:00) [0]В программе имеется порядка 10-20 потоков, которые выполняют различные задачи, с передачей управления во внешние DLL по наступлению некоторых событий и т.д.
Известно, что создания/уничтожение потока занимает больше времени, чем остановка/Запуск.
Вопрос - имеет смысл ли на таком количестве потоков мучаться с синхронизацией, с выборкой задач, чтобы работали постоянно те же самое 10 потоков, но переключались с одной задачи на другую или ничего страшного, если потоки будут создаваться/уничтожаться заново?
← →
Eraser © (2005-09-17 14:08) [1]Всё зависит от того, сколько задач необходимо выполнять, если на порядок больше чем 10-20 потоков, тогда имеет смысл.
← →
TUser © (2005-09-17 14:18) [2]При таком кол-ве потоков - ИМХО, не имеет смысла.
← →
Piter © (2005-09-17 14:20) [3]так я для того и привел пример - одновременно будут работать 10-20 потоков...
← →
Sergey_Masloff (2005-09-17 14:24) [4]У тебя 20 процессоров на машине?
← →
Piter © (2005-09-17 14:29) [5]Sergey_Masloff (17.09.05 14:24) [4]
к чему такой вопрос?
← →
DrPass © (2005-09-17 14:40) [6]
> Piter © (17.09.05 14:29) [5]
> Sergey_Masloff (17.09.05 14:24) [4]
>
> к чему такой вопрос?
Потому что использование многих потоков на одном процессоре только замедляет (хоть и незначительно) выполнение программы. Обычно достаточно всего двух - один обслуживает интерфейс, второй выполняет работу
← →
Piter © (2005-09-17 23:59) [7]DrPass © (17.09.05 14:40) [6]
ну обычно - это обычно. А если допустим программа плагино-расширяемая? Тогда плагины могут "задержать" поток у себя (мало что они там делают). А при этом нужна возможность работы других плагинов и самой программы... так что проблема актуальна.
← →
Defunct © (2005-09-18 01:50) [8]> так что проблема актуальна.
;>
а решение проблемы - не актуально! ;>
imho наверное лучше запускайть задачу каждого плагина отдельным потоком.
← →
DrPass © (2005-09-18 11:22) [9]
> А если допустим программа плагино-расширяемая?
Тогда при подключении плагина создавай новый поток, и убивай его после отключения. В противном случае, если захочешь разрулить управление плагинами между десятком постоянных потоков, рискуешь получить такого монстра, что сам через полгода в нем не разберешься :)
А нужна ли синхронизация - зависит от логики программы. Не зная ее, однозачно не ответишь
← →
Piter © (2005-09-18 12:05) [10]Да, я уже тоже пришел к такому мнению - каждому плагину - по потоку :)
И пусть они там че хотят с этим потоком делают - их проблемы :)
← →
марсианин © (2005-09-19 00:43) [11]а что делает программа, если не секрет?
← →
Игорь Шевченко © (2005-09-19 00:59) [12]Пул потоков не оптимальнее ли будет использовать ? Некий диспетчер, который принимает запросы на одновременную обработку фиксированным количеством потоков. Рихтер с братом его Кларком описывают пример такой работы в "Программировании серверных приложений для Windows 2000".
Вопрос про количество процессов не просто так задан, на него надо ответить.
← →
Piter © (2005-09-19 04:09) [13]марсианин © (19.09.05 0:43) [11]
а что делает программа, если не секрет?
пока очень мало :) А там посмотрим...
Игорь Шевченко © (19.09.05 0:59) [12]
Пул потоков не оптимальнее ли будет использовать ?
думал. Черт его знает - дело для меня новое, и имеет ли смысл на 20 потоках это реализовывать?
Игорь Шевченко © (19.09.05 0:59) [12]
Вопрос про количество процессов не просто так задан
нигде не вижу такого вопроса.
← →
Котик Б (2005-09-19 09:09) [14]>Известно, что создания/уничтожение потока занимает больше времени, чем остановка/Запуск.
А может лучше померять на твоей задаче ?
← →
Игорь Шевченко © (2005-09-19 10:08) [15]
> нигде не вижу такого вопроса.
[4]
← →
Думкин © (2005-09-19 10:10) [16]> Игорь Шевченко © (19.09.05 10:08) [15]
Придерутся. :) Процесс <> процессор.
"Не советую. Съедят-с." (с) Какой-то мультик.
← →
Piter © (2005-09-19 11:40) [17]Игорь Шевченко © (19.09.05 10:08) [15]
Ну да, сами понимаете. Процесс и процессор разные вещи.
Так какой вопрос? Есть ли много процессоров на машине или будет ли запускаться много копий моего приложения, или что имелось в виду?
← →
Игорь Шевченко © (2005-09-19 11:57) [18]Piter © (19.09.05 11:40) [17]
А...я перепутал. Конечно же, я имел в виду количество процессоров. Поздно уже было.
Думкин © (19.09.05 10:10) [16]
"Тогда ко мне под машину зашел кот Василий. С минуту он внимательно
следил за моими руками, а потом произнес вполголоса, но явственно: "Не советую, гражданин... мнэ-э... не советую. Съедят", после чего сразу удалился, подрагивая хвостом."
(с) Понедельник начинается в субботу
← →
Думкин © (2005-09-19 12:08) [19]> Игорь Шевченко © (19.09.05 11:57) [18]
:))))))))
Точно. Вот я как тот кот, все помню, а вспомнить точно - не могу. :) Склероз.
← →
Piter © (2005-09-19 18:59) [20]Игорь Шевченко © (19.09.05 11:57) [18]
Конечно же, я имел в виду количество процессоров
ну у меня один процессор. У конечных пользователей в большинстве случаев, думаю, тоже будет один процессор.
Но я так и не понял смысла вопроса.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.016 c