Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Многопоточное приложение   Найти похожие ветки 

 
misha_gr   (2010-03-16 14:04) [0]

Уважаемые Мастера. Возник у меня следующий вопрос. Если я использую наследник TThread, получается, я не могу в Execute использовать множество функций Delphi? Например, ну, какой-нить безобидный IntToStr - уже небезопасен?


 
Медвежонок Пятачок ©   (2010-03-16 14:05) [1]

IntToStr может быть запросто небезопасен и будучи вызванным в основном потоке.


 
misha_gr   (2010-03-16 14:08) [2]

> IntToStr может быть запросто небезопасен и будучи вызванным в
> основном потоке.

нельзя ли пояснить?


 
Медвежонок Пятачок ©   (2010-03-16 14:09) [3]

запросто.

десять вторичных потоков меняют значение глобального интегера.
а в главном потоке мы делаем IntToStr этому интегеру.


 
misha_gr   (2010-03-16 14:18) [4]

Ну кагбэ предполагается, что общие ресурсы защищены от одновременного изменения тем или иным образом. Вопрос в другом: разные потоки одновременно вызывают IntToStr, для разных интегеров. Что мы имеем на выходе? Корректные значения или как получится?

Ну и имеется в виду куча общеприменяемых функций Delphi. IntToStr -  просто первое что в голову пришло.


 
Медвежонок Пятачок ©   (2010-03-16 14:19) [5]

Сам по себе ИнтТуСтр безопасен как секс в титановом презервативе без партнера.


 
Германн ©   (2010-03-16 14:21) [6]


> Вопрос в другом: разные потоки одновременно вызывают IntToStr,
>  для разных интегеров. Что мы имеем на выходе? Корректные
> значения или как получится?
>

Откуда такая паранойя?


 
Медвежонок Пятачок ©   (2010-03-16 14:24) [7]

Что мы имеем на выходе? Корректные значения или как получится?

На выходе, мы, (все нормальные земляне) имеем результат инттустр.


 
misha_gr   (2010-03-16 14:53) [8]

Хорошо, сформулируем вопрос по другому: потокобезопасная функция, как ее отличить от потокоНЕбезопасной? Как достигается потокобезопасность? Как написать потокобезопасную функцию?

 Вот локальные переменные, например, создаются новые экземпляры каждый раз при входе в функцию?


 
Медвежонок Пятачок ©   (2010-03-16 14:59) [9]

они потому локальными и называются, оттого что они не глобальные.


 
misha_gr   (2010-03-16 15:05) [10]

Локальными переменными они называются из-за области видимости. Уважаемый Пятачок, нет желания отвечать на поставленные вопросы - не тратьте своё время.


 
Медвежонок Пятачок ©   (2010-03-16 15:09) [11]

из-за области видимости

и у тебя есть мега-подозрение, все значения локальной переменной процедуры видимы во всех вызовах этой процедуры?

что мешает проверить?


 
Dennis I. Komarov ©   (2010-03-16 15:12) [12]


> misha_gr   (16.03.10 14:53) [8]

Потокобезопасность достигается пониманием как оно работает...


 
Медвежонок Пятачок ©   (2010-03-16 15:15) [13]

Потокобезопасность достигается пониманием как оно работает...

Оно видимо хочет чтобы ему здесь запостили раздел встроенного хелпа про девелопинг мультисреадед аппликайшен.


 
имя   (2010-03-16 15:20) [14]

Удалено модератором
Примечание: Читать - сколько угодно


 
Медвежонок Пятачок ©   (2010-03-16 15:30) [15]

встроенный хелп лежит под кнопкой F1


 
Демо ©   (2010-03-16 16:35) [16]


> misha_gr

http://forum.vingrad.ru/forum/topic-60076.html

Потокобезопасный код - код, в котором общие ресурсы, используемые в разных потоках, содержат при выполнении кода ожидаемое значение.



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

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

Наверх




Память: 0.5 MB
Время: 0.052 c
15-1268760103
Делфиец
2010-03-16 20:21
2010.08.27
Изучают ли Делфи в ВУЗАХ


2-1269796732
fiascko
2010-03-28 21:18
2010.08.27
построение графиков


9-1186638715
wsaenotsock
2007-08-09 09:51
2010.08.27
GUI без VCL


15-1272952103
Phoenix
2010-05-04 09:48
2010.08.27
Как подерживать себя в работоспособном состоянии.


2-1271858675
DROWSY
2010-04-21 18:04
2010.08.27
Компонент для выбора числового значения.