Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2008, 20:26   #1
bagulma
 
Регистрация: 28.05.2008
Сообщений: 6
По умолчанию Как грамотно разделить данные между потоками?

Добрый день.
Пишу поточный парсер.
Встал вопрос о разделении данных между потоками.

Смысл.

Допустим есть 10 строк и 3 потока.
Как мне грамотно разделить строки между потоками, что бы первый поток парсил строки с 1 - 3, второй с 4 - 6, а третий соотвественно с 7 - 10?

Не могу придумать цикл деления строк.
ПС. Аотоков может быть и 10 и 100 в зависимости от количества строк.
Подскажите пожалуйста

Последний раз редактировалось bagulma; 28.05.2008 в 20:33.
bagulma вне форума Ответить с цитированием
Старый 28.05.2008, 21:07   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Что значит "грамотно"? Отправляйте поступающие строки первому же свободному потоку. И зачем сто потоков? Вполне может хватить двух-трёх.
B_N вне форума Ответить с цитированием
Старый 28.05.2008, 21:36   #3
bagulma
 
Регистрация: 28.05.2008
Сообщений: 6
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
Что значит "грамотно"? Отправляйте поступающие строки первому же свободному потоку. И зачем сто потоков? Вполне может хватить двух-трёх.
Все дело в том что строки заранее известны, потоки создаются динамически. вот и вопрос - как передать строки в поток...
а грамотно я имею ввиду вот что: строк например 10, а потоков 3 - значит 2 потокам нужно передать по три строчки, а третьему оставшиеся 4... вот и не понятно как это сделать

Последний раз редактировалось bagulma; 28.05.2008 в 21:39.
bagulma вне форума Ответить с цитированием
Старый 28.05.2008, 22:14   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

для начала раздать всем свободным потокам по строке. Когда кто-нибудь освободится дать ему еще одну строку. Если незанятых строк нет. то ...
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 28.05.2008, 22:21   #5
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

bagulma, создаёте обычную "карусель", смотрите уже, что больше нравится, массив, список, очередь и т.п. Выбираете с головы свободный поток, нагружаете его задачей, и он уходит трудиться, как закончит - встаёт в хвост очереди и так - пока строки не кончатся...
B_N вне форума Ответить с цитированием
Старый 28.05.2008, 22:41   #6
bagulma
 
Регистрация: 28.05.2008
Сообщений: 6
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
bagulma, создаёте обычную "карусель", смотрите уже, что больше нравится, массив, список, очередь и т.п. Выбираете с головы свободный поток, нагружаете его задачей, и он уходит трудиться, как закончит - встаёт в хвост очереди и так - пока строки не кончатся...
никак в голове не уложится у меня. крутиться мысль, но придумать не могу ничего )
Можно пример кода простенький, если есть конечно?
bagulma вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли через ПХП передавать данные между разными сайтами? tunyash PHP 1 31.07.2008 16:26
работа с потоками Alex_Pro Общие вопросы .NET 1 01.07.2008 07:25
C++, работа с потоками mat90x Помощь студентам 20 15.05.2008 22:20
Как грамотно загружать языковые файлы в приложение? apromix Общие вопросы Delphi 11 09.05.2008 21:06
как разделить данные на две группы по частоте встречаемости параметра e_khomchenko Microsoft Office Excel 9 05.02.2008 20:34