Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.6 MB
Время: 0.059 c
3-1116708519
Starcom
2005-05-22 00:48
2005.06.29
Password...


1-1118062729
Andrey Kononov
2005-06-06 16:58
2005.06.29
Как проверить является ли экземпляр потомком класса


3-1116421131
Nadya
2005-05-18 16:58
2005.06.29
данные из InterBase


4-1115260119
Naumov
2005-05-05 06:28
2005.06.29
Непонятная проблема с окнами


6-1111941256
Vitaly Gavrilov
2005-03-27 20:34
2005.06.29
О учете времени в интернет





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский