|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.07.2015, 11:27 | #1 |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
Идея реализации задуманного
Всех приветствую, есть задумка которую хочу реализовать, а как не знаю, вот и прошу помощи, подсказки, идеи...
В общем есть 1 поток который грузит страницу с неким кодом из которого получается по 10 кусков кода в каждом из которых есть по 1 ссылке которая собстна и обрабатывается... Вот... хочу сделать программу многопоточной, ибо скорость мне ооочень кстати будет... только вот придумать никак не могу... Нужно чтобы 1 поток грузил основную страницу... и запускал по очереди еще 10 потоков которым давал по куску кода, далее после обработки кода и нужной страницы каким либо образом оповещал главный поток чтобы он продолжил свою работу... Впринципе остановить поток можно как нибудь поставив его на паузу, а как проверять закончили они работу или нет не знаю... хотя с помощью переменной-флага можно Но как реализовать это понятия не имею к сожалению... Код каждого из потоков в potok.Execute будет один и тот же включая и основной, как реализовать выполнение одним потоком одной части кода а остальными другой не знаю... ну чтобы они выполняли разные задачи... ну куски кода для каждого из потоков можно хранить в переменной объявленной в threadvar... Как дается кусок кода вообще в данный момент... из основного кода копируется от начала до определенного символа часть кода, кусок кода который поступил в обработку удаляется из основного кода Как реализовать такое... поток не притронется к коду пока другой код не скопирует нужную ему часть... ну впринципе это можно сделать с помощью переменной-флага Последний раз редактировалось vipok72; 30.07.2015 в 11:31. |
30.07.2015, 11:46 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А как сейчас загрузка выглядит? Всмысле код.
I'm learning to live...
|
30.07.2015, 11:54 | #3 |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
запускаю поток кнопкой, поток грузит код страницы в переменную и в цикле for от 1 до 10 (ссылок всего 10 которые обрабатываются) вырезает из этого кода кусок, который и обрабатывает
А нужно сделать так: запускаю основной поток кнопкой, поток грузит страницу в переменную, и запускает потоки которые вырезают себе по куску кода, основной поток приостанавливается до завершения работы потоками... (1-10 сек) Последний раз редактировалось vipok72; 30.07.2015 в 11:58. |
30.07.2015, 12:21 | #4 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
Не правильно...
Резать должен один поток, т.к. переменная одна, и доступ к ней из разных потоков все равно придется синхронизировать
Не стесняемся, плюсуем!
|
30.07.2015, 13:07 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Вот именно. Скачал, порезал - в цикле попередавал в доппотоки и порядок.
I'm learning to live...
|
30.07.2015, 15:47 | #6 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
Цитата:
А можно например объявить 2 разных класса в type? ну типо: TNewThread = class(TThread) potok = class(TThread) Например чтобы TNewThread работал постоянно со страницой и резал, а potok это те самые 10 потоков которые обрабатывают, а как реализовать ожидание основным потоком остальных потоков? Есть идея как с переменной-флагом это реализовать и все... |
|
30.07.2015, 16:42 | #7 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
А в массиве можно хранить сами потоки (на всякий случай, вдруг захочется их остановить и еще что-то сделать с ними). Цитата:
ожидание (ПОЛУЧЕНИЕ информации о завершении!!!!) потоков через OnTerminate
программа — запись алгоритма на языке понятном транслятору
|
||
30.07.2015, 21:44 | #8 |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
|
30.07.2015, 21:48 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Код:
I'm learning to live...
|
30.07.2015, 22:52 | #10 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
Цитата:
Как мне точно узнать что все потоки завершили работу? |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Идея реализации или как и что? | kta87 | Фриланс | 0 | 21.06.2012 12:08 |
НУЖНА ХОТЯ БЫ ИДЕЯ ИДЕЯ РЕШЕНИЯ!) немного непонятная задача с массивом.... | ngup_k | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 12.12.2011 19:33 |
Сравнение даты (PHP MYSQL) Нужна идея реализации! | YuZi_2009 | PHP | 6 | 11.02.2011 14:55 |
Идея | жужка | Фриланс | 5 | 23.01.2011 11:02 |
Идея реализации скелета класса | TwiX | Общие вопросы Delphi | 11 | 04.10.2010 19:51 |