Главная страница
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.048 c
2-1268686344
yurpos
2010-03-15 23:52
2010.08.27
Помогите бестолковому


2-1275629647
Delphist2
2010-06-04 09:34
2010.08.27
Как в winapi различить 2 контрола одного класса на окне?


15-1274819385
Юрий
2010-05-26 00:29
2010.08.27
С днем рождения ! 26 мая 2010 среда


3-1242203480
Int23
2009-05-13 12:31
2010.08.27
Как получить список полей в ХП в МС СКЛ 2005


2-1270827005
User
2010-04-09 19:30
2010.08.27
Можно ли записывать в папку