Главная страница
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.072 c
15-1264741981
Урсулапов_
2010-01-29 08:13
2010.08.27
Можно ли так забивать?


15-1264749431
Делфиец
2010-01-29 10:17
2010.08.27
Помогите разобраться что это за ерунда


15-1275143388
oldman
2010-05-29 18:29
2010.08.27
Для тех, кто любит блюз (а тут любят блюз...)


4-1238606535
Psycho
2009-04-01 21:22
2010.08.27
Хук на WM_DROPFILES в трей


2-1268987208
Den
2010-03-19 11:26
2010.08.27
Какое событие происходит?