Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

По поводу одновременного выполнения кода [D1, D2, D3, D4, D5, D6, Win95/98, WinME, NT4, Win2k, WinXP]


Oxy2 ©   (2002-08-17 17:44:00) 

Привет!
Что уважаемые мастера скажут, если я спрошу такое. Если две нити выполняют одну и ту же процедуру, то реально они выполняют один и тот же код или для каждой нити создается своя копия процедуры.


Aleksey Pavlov   (2002-08-19 14:21:00) [1]

>> Oxy2 (17.08.02 17:44):
Код выполеняется один, но для каждой нити (thread) создаётся своё отображение данной процедуры. Т.е. результат выполнения данной процедуры в одном потоке (thread) не зависит от выполнения этой же процедуры во втором потоке (если специально не предусмотрены меры по взаимодействию двух или более потоков).

>>Yaro © (18.08.02 15:02):
см. статьи на этом сайте.


Oxy2   (2002-08-19 10:55:00) [2]

>>Cobalt
Я примерно догадывался, но точно не знал. Спасибо.


Yaro   (2002-08-18 15:02:00) [3]

Извините за ламерский вопрос, но как работать с потоками (ведь о них идет речь?)


Cobalt   (2002-08-17 23:06:00) [4]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо