Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.05.20;
Скачать: CL | DM;

Вниз

Подскажите насчет потоков Thread   Найти похожие ветки 

 
Wadim   (2012-01-18 13:36) [0]

Как правильно сделать, есть несколько потоков
Поток Start1
Поток Start2
Поток Get1
Поток Get2

Поток Start1 запускает поток Get1, контроллируя TimeOut и т.п.
аналогично и 2 других потока

В потоках Get 1 и Get 2 их результат один и тотже но получает все разными методами

Как правильно мне записывать данные в 1 массив по результатам их работы, чтобы не было перекрестных запросов в массиву с результатами
После отработке в потоках Get1 и Get2 через Synchronize запускается обработчик событий, в котором и записываются данные в массив, запуская в этом обработчике процедуру принятия решений согласно полученным данным.
Хватит ли одного Synchronize или добавить еще критическую секцию? вообщем как правильно сделать?


 
Dimka Maslov ©   (2012-01-18 13:38) [1]

Syncronize и есть критическая секция, но она синхронизируется ещё и основным потоком, что вызовет замедление. Если потоки не обмениваются данными с компонентами на форме - лучше сделать отдельную критическую секцию.


 
Wadim   (2012-01-18 13:46) [2]

спс, да там есть обмен с формой, если нужен мне вывод результатов, да и замедление там только мат. расчет или зпуск других потоков, замедление не заметно


 
Dimka Maslov ©   (2012-01-18 13:51) [3]

Всё дело в объёме обрабатываемых данных и частоте вызова синхронизации. У меня в одном проекте замедление из-зе неё составляло несколько порядков, пока я всё не переделал.


 
Wadim   (2012-01-18 14:03) [4]

В массиве в 1 записи всего полей 10 макс, 1 поток за обращение работает 1 одной записью, частота запросов Get1 1 запрос в 2 секунды, Get2 4 запроса в минуту, еще добавлю Get4 и Get5 примерно по 10 запрос в минуту каждый, думаю тормозить не должно


 
Ega23 ©   (2012-01-18 14:14) [5]


> думаю тормозить не должно

Это вообще копейки.



Страницы: 1 вся ветка

Текущий архив: 2012.05.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.005 c
2-1326605148
bumbum
2012-01-15 09:25
2012.05.20
управлять устройством через com port


15-1326056648
Dmitry1987
2012-01-09 01:04
2012.05.20
обновление данных при multi-user работе


15-1326447033
aka
2012-01-13 13:30
2012.05.20
SSH+Delphi


2-1326809483
Alexander123
2012-01-17 18:11
2012.05.20
чтение массива double с помощью TFileStream


15-1326382496
brother
2012-01-12 19:34
2012.05.20
Хочу не понятного?