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

Вниз

Нить и ЦП   Найти похожие ветки 

 
_BasiL_ ©   (2005-06-09 13:41) [0]

Здравствуйте!

Нити загружают ЦП на 100%, при этом комп не тормозит и другие приложения выполняются без тормозов.

Есть одна главная нить, она сканирует папки на наличие появления определенных файлов, при нахождении таких она раздает рабочим нитям (динамический массив нитей, сколько пользователь создаст) в буфер, соответственно контролирует равномерное заполнение буферов. У рабочей нить вначале пустой цикл с приоритетом IDLE в котором смотрится буфер и с интервалом в 3 секунды вызывается Synchronize процедуры которая на визуальном объекте выводит свой буфер, если в буфере оказался файл, она себя выставляет в NORMAL и начинает его обробатывать.

И вот такой парадокс, если создать одну рабочаю нить и ее запустить без главной нити сканирования, теоретически и практически рабочая нить крутится в этом пустом цикле, а проц подскакивает на 100%. Убирал из этого цикла Synchronize, оставит только такой код
FName="";
repeat
 if Terminated then Exit;
until FName<>"";

Загрузка ЦП всеравно 100%


 
iskatel ©   (2005-06-09 13:43) [1]

sleep(ms)


 
_BasiL_ ©   (2005-06-09 14:15) [2]

Помогло :-)


 
Суслик ©   (2005-06-09 14:17) [3]

sleep(0)


 
Alexander Panov ©   (2005-06-09 14:28) [4]

Неправильно работаешь с потоками. Почитай про объекты синхронизации, например про Event, Semaphore.

см. также WaitForSingleObject.



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

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

Наверх




Память: 0.47 MB
Время: 0.035 c
1-1118063196
Иван П.
2005-06-06 17:06
2005.06.29
Первое-последнее число текущего месяца в DateTimePicker


14-1117728370
iZEN
2005-06-02 20:06
2005.06.29
Книжка по Delphi.NET


4-1114710007
MUHAMOR
2005-04-28 21:40
2005.06.29
Разные винды - разный результат


10-1094643891
cad2206
2004-09-08 15:44
2005.06.29
Изменение размера ячеек в Excel из delphi???


14-1117675849
Dyakon_Frost
2005-06-02 05:30
2005.06.29
Геометрия на плоскости