Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

КАК МНЕ ОРГАНИЗОВАТЬ МНОГОПОТОЧНЫЙ ПОИСК   Найти похожие ветки 

 
nevalex   (2005-09-30 11:15) [0]

КАК МНЕ ОРГАНИЗОВАТЬ МНОГОПОТОЧНЫЙ ПОИСК
у меня есть функция поиска файлов в сети
но это слишком медлинно
как мне организовать потоки(нити) чтобы я смог запустить функцию поиско с параметрами (DIR , mask)
если можно пример (не функции а организации этого)
-----------------
мне надо именно раскидать эти потоки по компам чтобы они искали каждый свое


 
Digitman ©   (2005-09-30 12:31) [1]


> это слишком медлинно


быстрей не получится.
потоки (нити) не предназначены для "ускорения" чего-то там


 
Lamer@fools.ua ©   (2005-09-30 12:46) [2]

>>Digitman ©   (30.09.05 12:31) [1]

При поиске в сети может получиться. Например, если искать параллельно на нескольких сетевых компьютерах.


 
ANB ©   (2005-09-30 14:12) [3]


> nevalex   (30.09.05 11:15)
- создаешь свой класс нити. В поля прописываешь параметры поиска и место для результата. В процедуре выполнения засовываешь сам поиск (можно вынести в отдельную процедуру, только не в коем случае не обращайся оттуда к VCL. Хотя обращение к VCL и можно сделать неошибочным, но потоки начнут ждать друг друга и эффекта не будет) Дальше генеришь нужное количество объектов, заполняешь поля параметров и запускаешь. В основном потоке ждешь, пока завершаться потоки (можно каждый по отдельности обрабатывать) и достаешь из объектов нити ответ.


 
Digitman ©   (2005-09-30 15:17) [4]


> Lamer@fools.ua ©   (30.09.05 12:46) [2]


нет, не получится.

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


 
ANB ©   (2005-09-30 15:22) [5]


> Digitman ©   (30.09.05 15:17) [4]
- да не должно бы. Большую часть времени эти потоки будут ждать ответа от файловой системы и сетки, посему, по идее, должно бы быстрее в сумме получиться.


 
ANB ©   (2005-09-30 15:25) [6]


> Digitman ©   (30.09.05 15:17) [4]
- а чисто теоретически : если я запущу 10 вычислительных потоков на машине с HT, они в сумме будут также считать, как и один поток, или таки чуть чуть быстрее ? (Если запустить все в отдельных процессах - суммарная производительность выше, проверял лично)


 
Digitman ©   (2005-09-30 15:42) [7]


> ANB ©   (30.09.05 15:25) [6]


в общем случае время, затраченное одним-единственным потоком и затраченное суммарно N-ным кол-вом потоков (того же процесса) на решение конечной задачи, будет сравнимо.

частный случай (мультипроцессорная система, гипертрединг и т.п.) не рассматриваем.

под "конечной задачей" я подразумеваю следующее :

сет.ресурс "1" - потенциально существуют X искомых файлов
сет.ресурс "2" - потенциально существуют Y искомых файлов
сет.ресурс "3" - потенциально существуют Z искомых файлов

и т.д.

задача - сформировать список записей вида:

Поле1 - Ид-р ресурса
Поле2 - Путь к найденному файлу, включая имя

И какая разница, сколько потоков будут решать эту задачу ?

Пока все потоки не отработают поиск в своем ресурсе, список не может считаться сформированным.


 
Fay ©   (2005-09-30 17:25) [8]

2 ANB ©   (30.09.05 15:22) [5]
2 Digitman ©   (30.09.05 15:42) [7]

Мне кажется, что многопоточный поиск по нескольким компам действительно уместен.

Соглашусь, пожалуй, с ANB ([5])
>> Большую часть времени эти потоки будут ждать ответа от файловой системы и сетки
, но я уверен, что выигрыш будет на том, что разные потоки будут курить в разное время, а не по очреди. Т.е. несколько потоков курят + несколько уже что-то делают.


 
Digitman ©   (2005-09-30 18:00) [9]


> Fay ©   (30.09.05 17:25) [8]


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



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
9-1121668182
Psiops
2005-07-18 10:29
2005.12.04
Кто знает как выдернуть модели из Far Cry


2-1132010052
Canvas
2005-11-15 02:14
2005.12.04
Как нарисовать на канвасе полумесяц?


3-1129711611
=Grinder$=
2005-10-19 12:46
2005.12.04
Обработка ошибок


4-1128096356
SpyBoy
2005-09-30 20:05
2005.12.04
ОЗУ


2-1131956406
Asail
2005-11-14 11:20
2005.12.04
Глюк Delphi 7 под HypherThreating...