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

Вниз

Как избежать гонок в потоках   Найти похожие ветки 

 
Erik1 ©   (2005-06-02 15:17) [80]

Всегда тут не по теме треплются.
Автору
Советую обратить внимание на группу функций WaitFor(MultiObject). Для опредерения необходимости запуска потоков. Допустим такую ситуацию, пишуший поток вошол в критическаю секцию и завис на обашении к сети. Вся наша система встала, даже трудно понять, что произошло. Для облегчения взвимодействия потоков применяются события и функции ожидающие этих событий. Причем событий может быть несколько, например сигнал аваийного звершения задачи.

P.S
Свой код могу выложить или выслать по почте.


 
Alexander Panov ©   (2005-06-02 15:41) [81]

evvcom ©   (02.06.05 13:54) [79]
...Во время оповещения читающий поток ждет, когда ему ОС выделит квант времени. :)

...И после того как пишущий делает свое дело, он извещает об этом читателя.

...мне нравится PostMessage, хотя по ситуации


Еще раз.

1. Если ожидающий поток ждет кванта времени, это означает, что он не назодится в сотоянии ожидания одного из объектов ядра?

2. Нахрена извещать поток, если он всего лишь "ожидает кванта времени"?

3. С какого перепугу поток вдруг начнет обрабатывать PostMessage?
---------------------

Может хватит чушь нести?


 
Alexander Panov ©   (2005-06-02 15:55) [82]

Прошу прощения за резкое высказывание.
Предлагаю перенести дискуссию в потрепаловку.


 
evvcom ©   (2005-06-02 17:20) [83]

Перенес http://delphimaster.net/view/15-1117717481/


 
GrayFace ©   (2005-06-02 21:28) [84]

leonidus
См. книгу Рихтера "Windows для профессионалов". По слухам, есть на http://www.podgoretsky.com


 
GrayFace ©   (2005-06-02 21:40) [85]

evvcom ©   (02.06.05 8:51) [65]
Поэтому в пишущем потоке я бы даже synchronize не стал вызывать, а использовал бы PostMessage.

Поддерживаю.


 
Alexander Panov ©   (2005-06-02 23:17) [86]

GrayFace ©   (02.06.05 21:40) [85]
Поддерживаю.

Аналогично, как и перед этим. В топике в потрепаловке есть где разгуляться.


 
leonidus ©   (2005-06-03 08:27) [87]

Блин вот это тред мы тут развели:) Может действительно усложнили задачу... в начале все так элегантно получалось. Я одного не пойму, если критическая секция априори допускает в себя только один поток, то значит мы этим механизмом однозначно не допустим параллельной записи и одновременного чтения из массива, что нам собственно и нужно. Но тут накладывается проблема чтения массива в произвольный момент времени. Ну так она должна решаться просто повышением приоритета читающего потока над записывающим. Т.е. если записывающий (W) уже в секции, читающий(R) все равно бессилен, но зато когда W закончит свою работу управление передасться R а не следующему W, а считав нужные данные W передаст эстафету следующему R что и требовалось доказать. Я правильно мыслю?



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

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

Наверх




Память: 0.61 MB
Время: 0.038 c
4-1115175884
Alexandr_jr
2005-05-04 07:04
2005.06.29
CreateFileMapping&MapViewOfFile


14-1117403483
Piter
2005-05-30 01:51
2005.06.29
Простенький HTTP-прокси


14-1117904770
Qwertyk
2005-06-04 21:06
2005.06.29
Модем - Телефон


9-1110528883
Guest2005
2005-03-11 11:14
2005.06.29
Вывод изображения используя средства D3D


1-1118264735
Новичок :)
2005-06-09 01:05
2005.06.29
Обработка собития формы !!!