Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.04 c
2-1132221469
IAMDANIL
2005-11-17 12:57
2005.12.04
DEBUG


4-1128094188
NikNet
2005-09-30 19:29
2005.12.04
Как вставить в Фон ToolBar рисунок?


1-1131191838
ArtemESC
2005-11-05 14:57
2005.12.04
Как получить точку экрана?


14-1131712043
SPeller
2005-11-11 15:27
2005.12.04
Просто ради смеха


6-1124662253
Delphi_is_cool
2005-08-22 02:10
2005.12.04
WinSock. Как отправить файлы ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский