|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.02.2012, 15:10 | #1 |
Форумчанин
Регистрация: 25.08.2011
Сообщений: 140
|
Потоки и парсинг. Как воплотить
В двух словах. Если ставить критическую секцию то ВСЕ потоки будут ожидать пока завершится один. Если основная идея программы парсинг то потоки скорости не прибавят в таком случае.
Вопрос: как сделать полноценный поток с парсингом? В идеале я вижу это так: Поток как копия программы, выполняет все действия и ни в чем не ограниченна. Но блин пока у меня скорости не чувствуется) |
13.02.2012, 15:53 | #2 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
Цитата:
1.потоки должны работать с разными данными. 2.по возможности эти данные не должны пересекаться. Пересечение данных = критическая секция.
программа — запись алгоритма на языке понятном транслятору
|
|
13.02.2012, 16:27 | #3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Организуйте хранилищеп отоков на основе TList, или напишите свой пул потоков.
|
13.02.2012, 22:16 | #4 |
Регистрация: 21.05.2011
Сообщений: 8
|
Всем привет, возник тот же вопрос. Пытаюсь сделать многопоточный парсер, но не получается синхронизировать потоки между собой, поэтому программа берет одну и ту же ссылку несколько раз (грузятся из стринг листа). Вот мой примерный код:
Код:
|
13.02.2012, 22:30 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
я бы сделал(при такой системе) еще один метод для синхрониз, и именно он будет брать строку из листа и увеличивать индекс.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
14.02.2012, 13:55 | #6 | |
Регистрация: 21.05.2011
Сообщений: 8
|
Цитата:
Код:
|
|
14.02.2012, 15:17 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
они не обязаны завершаться в том порядке в котором начали.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
14.02.2012, 17:58 | #8 | |
Регистрация: 21.05.2011
Сообщений: 8
|
Цитата:
Последний раз редактировалось prey2009; 14.02.2012 в 18:01. |
|
14.02.2012, 19:10 | #9 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
или же храните адрес и после парсинга используйте его чтоб дать понять что инфа именно об этом адресе. а если же нужно строго по порядку, то один поток будет всего. Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
14.02.2012, 22:33 | #10 |
Регистрация: 21.05.2011
Сообщений: 8
|
Пепел Феникса, можете поподробнее о привязке потоков рассказать?А именно, как ее использовать в этом случае
Пока я вижу решение проблемы так: сделать, чтобы потоки ждали друг друга, пока у всех их не закончится получение страницы, а после этого каждый поток по очереди парсит свою страницу и записывает данные. Надеюсь, я в правильном направлении копаю? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как воплотить идею? Помогите! | Mitya1 | Свободное общение | 25 | 21.12.2014 14:40 |
У меня есть идея!(незнаю как воплотить) | johnifer | PHP | 1 | 24.11.2010 15:14 |
как воплотить принцип двух экранов Image (Delphi)? | FrankyKaup | Помощь студентам | 1 | 17.08.2010 22:29 |
Выделение отцовского пункта выпадающего меню во время прохода по дочерным. Как воплотить? | Dim23 | HTML и CSS | 3 | 20.03.2010 23:57 |