![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите насчет потоков Thread [D7]
Wadim © (2012-01-18 13:36:00)Как правильно сделать, есть несколько потоков
Поток Start1
Поток Start2
Поток Get1
Поток Get2
Поток Start1 запускает поток Get1, контроллируя TimeOut и т.п.
аналогично и 2 других потока
В потоках Get 1 и Get 2 их результат один и тотже но получает все разными методами
Как правильно мне записывать данные в 1 массив по результатам их работы, чтобы не было перекрестных запросов в массиву с результатами
После отработке в потоках Get1 и Get2 через Synchronize запускается обработчик событий, в котором и записываются данные в массив, запуская в этом обработчике процедуру принятия решений согласно полученным данным.
Хватит ли одного Synchronize или добавить еще критическую секцию? вообщем как правильно сделать?
Ega23 (2012-01-18 14:14:00) [1]
> думаю тормозить не должно
Это вообще копейки.
Wadim (2012-01-18 14:03:00) [2]В массиве в 1 записи всего полей 10 макс, 1 поток за обращение работает 1 одной записью, частота запросов Get1 1 запрос в 2 секунды, Get2 4 запроса в минуту, еще добавлю Get4 и Get5 примерно по 10 запрос в минуту каждый, думаю тормозить не должно
Dimka Maslov (2012-01-18 13:51:00) [3]Всё дело в объёме обрабатываемых данных и частоте вызова синхронизации. У меня в одном проекте замедление из-зе неё составляло несколько порядков, пока я всё не переделал.
Wadim (2012-01-18 13:46:00) [4]спс, да там есть обмен с формой, если нужен мне вывод результатов, да и замедление там только мат. расчет или зпуск других потоков, замедление не заметно
Dimka Maslov (2012-01-18 13:38:00) [5]Syncronize и есть критическая секция, но она синхронизируется ещё и основным потоком, что вызовет замедление. Если потоки не обмениваются данными с компонентами на форме - лучше сделать отдельную критическую секцию.