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

Threadы и т.п.   Найти похожие ветки 

 
inic ©   (2004-05-17 15:47) [0]

Дорогие товарищи!
Существует некий класс (пишу условно):


TSomeClass.Method1;
begin
 try
   {...}
 except
 end;
end;

TSomeClass.Method2;
begin
 try
   {...}
 except
 end;
end;


В приложение сущ. только один экземпляр этого класса,
а также 2+ потока (Thread).
Допустим один из потоков выполняет один из этих методов.
Сможет ли другой поток выполнить другой метод (то, что он не сможет выполнить этот же метод - понятно и так)?
Заранее благодарю.


 
panov ©   (2004-05-17 15:49) [1]

Сможет ли другой поток выполнить другой метод (то, что он не сможет выполнить этот же метод - понятно и так)?


Другой поток может выполнить другой метод.
Более того - он может и это метод использовать, который в данный момент использует первый поток.


 
panov ©   (2004-05-17 15:51) [2]

Для защиты от одновременного использования кода разными потоками можно использовать критические секции(например).

TCriticalSection
RTL_CRITICAL_SECTION


 
inic ©   (2004-05-17 15:52) [3]

Непонятно, почему он сможет выполнить этот же метод?
Разве try ... except не одно и то же, что и CriticalSection.
Надеюсь не несу какую-нибудь чушь.


 
panov ©   (2004-05-17 15:55) [4]

>inic ©   (17.05.04 15:52) [3]

Нет, это разные вещи.

try..except..end и try..finally..end - это надстройка над системой обработки исключений, а критические секции - это как раз и есть объекты для потокобезопасного программирования в многопоточных приложениях.


 
inic ©   (2004-05-17 15:56) [5]

Позор на мои седины...
Пошел подкреплять теорию!!!
Спасибо.


 
Digitman ©   (2004-05-17 15:57) [6]


> inic ©   (17.05.04 15:47)  


метод - это просто некая п/программа
если код этой п/программы загружен в АП процесса, любой поток в любой момент времени имеет право и способен вызывать эту п/программу произвольное кол-во раз, ВНЕ зависимости от того, выполняется ли или не выполняется эта же п/программа в данный момент времени в контексте каких-то иных код.потоков того же процесса ..

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


 
WebErr ©   (2004-05-17 15:57) [7]


> Надеюсь не несу какую-нибудь чушь

Надежда умирает последней. :)



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

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



Память: 0.46 MB
Время: 0.022 c
4-1082055682
Анатолий Ксюндзский
2004-04-15 23:01
2004.05.30
CreateProcess ??


14-1084394919
Vasya.ru
2004-05-13 00:48
2004.05.30
А в каких крупных проектах ,мастера, участвовали?


6-1081295507
juggler
2004-04-07 03:51
2004.05.30
IEParser и событие OnNewWindow2


14-1083913278
pasha_golub
2004-05-07 11:01
2004.05.30
Мое публичное заявление :-)


1-1084633198
Ivolg
2004-05-15 18:59
2004.05.30
Memo




   Наверх