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

Вниз

Общий вопрос по работе процедур   Найти похожие ветки 

 
Ezorcist   (2006-07-06 20:43) [0]

события в хронологическом порядке:

1. Программа приняла команду на выполнение процедуры "А"(процедура выполняется 2 сек).
2. Проходит 1 секунда и программа опять принимае команду на вызов "А".

Вопрос в том, как это реализовано в Delphi? Т.е. что будет происходить, подождет ли программа завершения процедуры (если да, то получается "очередь" ?? )


 
Virgo_Style ©   (2006-07-06 20:52) [1]

что такое "команда на вызов" и что понимается под "принимает"?


 
SergP.   (2006-07-06 21:09) [2]

Если имеется ввиду выполнение обработчика после нажатия на кнопку, то все зависит от того дает ли процедура возможность обработки сообщений из очереди (например Application.ProcessMessages) или нет.

Если имеется ввиду работа нескольких потоков, то никто никого ждатьь не будет, если єто не сделано преднамеренно...

А вообще вопрос туманный... Телепатор не воспринимает


 
SergP.   (2006-07-06 21:09) [3]

Если имеется ввиду выполнение обработчика после нажатия на кнопку, то все зависит от того дает ли процедура возможность обработки сообщений из очереди (например Application.ProcessMessages) или нет.

Если имеется ввиду работа нескольких потоков, то никто никого ждатьь не будет, если єто не сделано преднамеренно...

А вообще вопрос туманный... Телепатор не воспринимает


 
PSPF2003 ©   (2006-07-06 21:29) [4]

Выполнение процедур происходит по очереди.


 
tesseract ©   (2006-07-06 21:46) [5]


>Вопрос в том, как это реализовано в Delphi? Т.е. что будет происходить, >подождет ли программа завершения процедуры (если да, то получается >"очередь" ?? )


Процессор выполняет команды исключительно последовательно, даже если он супрескалаярный и с предвыполнением.
Распараллеливанием задач занимаеться ОС. Если процедуры выполняются в одном потоке , они будут вызваны последовательно.


 
Германн ©   (2006-07-07 01:12) [6]


> PSPF2003 ©   (06.07.06 21:29) [4]
> Выполнение процедур происходит по очереди.


> tesseract ©   (06.07.06 21:46) [5]
> ... Если процедуры выполняются в одном потоке , они будут
> вызваны последовательно.


Кроме ряда исключений из этих правил. Например [2].


> Ezorcist   (06.07.06 20:43) 
> ... Вопрос в том, как это реализовано в Delphi?
>  Т.е. что будет происходить, подождет ли программа завершения
> процедуры (если да, то получается "очередь" ?? )

Вопрос не в том "как это реализовано в Delphi?", а в том как это реализовано тобой в конкретной программе! Нужна очередь - делай её сам в соответствии со своими задачами и условиями.


 
Ezorcist   (2006-07-08 00:17) [7]

Угу, спасибо, я должен был подробнее описать проблему:

Есть сетевая программа, которая обрабатывает данные в соответствии с пришедшими командами (команды принимаюстя строками в TServerSocket-ах)

Вся работа с данными происходит при помощи одной процедуры. (Она может не успть завершится до прихода следующей команды)

И, собственно, вопрос: может ли быть эта процедура вызвана как то параллельно уже выполняющейся?

PS Потоков я не касался , мне надо убедиться в созранности данных если программа будет работать на медленых ПК.


 
DrPass ©   (2006-07-08 00:48) [8]


> может ли быть эта процедура вызвана как то параллельно уже
> выполняющейся?

Если для обработки каждого запроса создается отдельный поток, то может. Иначе - никак.


 
Германн ©   (2006-07-08 01:23) [9]


> PS Потоков я не касался , мне надо убедиться в созранности
> данных если программа будет работать на медленых ПК.

Данные будут сохраняться, но только до некоторых пор. Если поток входящих данных слишком большой для данного "медленного" ПК, то они (данные) будут потеряны в любом случае. Хоть с потоками, хоть без оных.
Если поток данных достаточно малый (в среднем по времени), то программа справится с ним опять же в любом случае. Если нет особых требований!


 
Ezorcist   (2006-07-08 12:25) [10]

2 DrPass
> аждого запроса создается отдельный поток, то может. Иначе - никак.

Вот это меня и интересовало, спасибо!



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

Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.013 c
1-1150640609
PRT
2006-06-18 18:23
2006.07.30
Проблема с UpperCase и InputBox


2-1152724757
Niko12
2006-07-12 21:19
2006.07.30
TEdit + image-background


1-1147554310
Anton_112
2006-05-14 01:05
2006.07.30
Разбор математического выражения


2-1152259007
1519
2006-07-07 11:56
2006.07.30
Мультимедиа


1-1150467729
_RusLAN
2006-06-16 18:22
2006.07.30
Получение данных из Excel через Clipboard





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский