Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.027 c
3-1083932811
Timon
2004-05-07 16:26
2004.05.30
Помогите, делаю ADOQuery1.Refresh; выдает ошибку "Insufficient "


11-1074308545
Sane
2004-01-17 06:02
2004.05.30
EOL в поток


4-1081593816
Kerk
2004-04-10 14:43
2004.05.30
Drag&Dock


1-1084783750
OlegM
2004-05-17 12:49
2004.05.30
Идиотский вопрос но есть application.Minimize; а обратная функция


14-1084269557
Alex_x
2004-05-11 13:59
2004.05.30
ASProtect, ICE license