Форум: "Основная";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
ВнизКак ограничить кол-во одновременно запущенных потоков Найти похожие ветки
← →
Андрей (2003-05-13 08:08) [0]Помогите кто может: смысл такой программа обрабатывает кучу текстовых файлов. Для увеличения скорости работы решено использовать резделение на потоки: 1 файл обрабатывается в отдельном потоке. Но для того чтобы не "перегрузить систему" нужно ограничить кол-во одновременно запущенных потоков например 5. Как сделать так, чтобы программа запускала потоки до тех пор пока не будет достугнута эта граница, а все остальные потоки всали какбы в очередь и ждали, пока не завершится 1 из запущенных а потом стартовали по 1-му потоку взамен законченного. Спасибо. Если не трудно, киньте на мыло. Сразу спасибо.
← →
MBo (2003-05-13 08:12) [1]1) вести учет потоков - счетчик, при завершении (OnTerminate) запускать новый
2) можно попробовать использовать семафор
← →
Юрий Зотов (2003-05-13 09:01) [2]> а все остальные потоки всали как бы в очередь и ждали, пока не
> завершится 1 из запущенных а потом стартовали по 1-му потоку
> взамен законченного.
Навскидку, семафор подходит просто идеально.
← →
Андрей (2003-05-13 09:17) [3]Ребята, дорогие!!!
я и сам бы рад использовать этот самый семафор. Но как его применять?!? никак не могу найти нормальное описание ни в литературе ни в инете, максимум 2 строки!!! и вроде как он только под юниксом работает, нет?
если не сложно, оставьте намек на то как им пользоваться или ссылочку нарисуйте :)
← →
Bel (2003-05-13 09:31) [4]Глянь здесь http://www.delphimaster.ru/articles/book/index.html (глава 11) - есть вкратце про семафоры, с примером.
← →
evvcom (2003-05-13 10:00) [5]А также эта тема по-моему неплохо освещена у Дж.Рихтера "Windows для профессионалов" (книга есть, например, на сайте А.Подгорецкого)
← →
MBo (2003-05-13 10:06) [6]между прочим, вряд ли скорость обработки файлов увеличится при многопоточности.
← →
Nerpa (2003-05-13 10:37) [7]У Рихтера твоя задача используется как пример работы с семафорами.
← →
Андрей (2003-05-13 13:19) [8]Спасибо Вам большое...
Но разве в моей задаче при использовании многопоточности не уменьшится общее время обработки всех файлов по сравнению если вообще не использовать потоки, а обрабатывать их по одному? MBo, почему?
← →
MBo (2003-05-13 13:36) [9]Если узким местом является именно обработка, то многопоточность только немножко замедлит (в случае однопроцессолного компьютера) - поскольку добавятся накладные расходы на переключение потоков.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c