Вниз
Скачать: CL | DM;

Потоки грузят проц...   Найти похожие ветки 

 
Bes   (2004-09-25 20:01) [0]

Вообщем такая вещь:

потоков многа, и все являются объектами класс TMyThread.
сразу скажу, потоки сидят в DLL. и из главной программы я их запускаю.

Вот примерная Execute процедура потока:

procedure TMyThread.execute;
begin
 while not Terminated do begin
     if not wait then begin
        ......
     end;
end;

переменная wait глобальная, ее ждут все потоки и если она в false то они начаниют работать...

а в чем трабла-то, потоков многа (до 100) хотя пока тестирую на 4, и когда глобальная переменная  true, проц у меня грузится на 100%. че делать, как лечить...

спасиба



 
Palladin ©   (2004-09-25 20:05) [1]

sleep


 
default ©   (2004-09-25 20:07) [2]

если ждать недолго в болшин-ве случае то Sleep иначе TEvent используй


 
Bes   (2004-09-25 20:08) [3]

2 Palladin : моей благодарности нет границ ... :)


 
Bes   (2004-09-25 20:11) [4]

2 default ну раз уж тема зашла, то можно по подробней о TEvent, или где почитать, посмотреть примерчики...


 
default ©   (2004-09-25 20:14) [5]

Bes   (25.09.04 20:11) [4]
тема объектов синхронизации очень проста(их самих а не ситуаций с ними я имею ввиду)
у Рихтера можно прочесть ну или в SDK естественно(MSDN ещё есть)


 
Defunct ©   (2004-09-26 05:31) [6]

default ©   (25.09.04 20:14) [5]
> тема объектов синхронизации очень проста(их самих а не ситуаций с ними я имею ввиду)

гы, весело, можно перефразирую, как я понял вашу фразу: тема проблем параллельного программирования очень проста (самих проблем, а не ситуаций с ними).

:)


 
Defunct ©   (2004-09-26 05:34) [7]

Bes   (25.09.04 20:11) [4]

насколько я понял про TEvent имелось в виду использование
Suspend/Resume самих потоков по каким-то событиям.


 
SergP.   (2004-09-26 11:51) [8]


> переменная wait глобальная, ее ждут все потоки и если она
> в false то они начаниют работать...


А не проще было бы сделать так чтобы потоки были остановлены, а тот кто меняет переменную wait пусть в этот момент запускает эти потоки ?



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
1-1096113765
Billi
2004-09-25 16:02
2004.10.10
Проблема кодировок


14-1095537823
Soft
2004-09-19 00:03
2004.10.10
Скоро появится игра The Elder Scrolls 4: Oblivion.


3-1095166277
Koala
2004-09-14 16:51
2004.10.10
Вопрос по SQL запросу


1-1095765890
roma
2004-09-21 15:24
2004.10.10
peremenniy a


1-1095758544
kand
2004-09-21 13:22
2004.10.10
Как "выдернуть" из DataTimePicker или MonthCalendar номер месяца?




   Наверх