![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Многопоточное приложение
misha_gr © (2010-03-16 14:04:00)Уважаемые Мастера. Возник у меня следующий вопрос. Если я использую наследник TThread, получается, я не могу в Execute использовать множество функций Delphi? Например, ну, какой-нить безобидный IntToStr - уже небезопасен?
Демо (2010-03-16 16:35:00) [1]
> misha_gr
http://forum.vingrad.ru/forum/topic-60076.html
Потокобезопасный код - код, в котором общие ресурсы, используемые в разных потоках, содержат при выполнении кода ожидаемое значение.
Медвежонок Пятачок (2010-03-16 15:30:00) [2]встроенный хелп лежит под кнопкой F1
(2010-03-16 15:20:00) [3]Удалено модератором
Примечание: Читать - сколько угодно
Медвежонок Пятачок (2010-03-16 15:15:00) [4]Потокобезопасность достигается пониманием как оно работает...
Оно видимо хочет чтобы ему здесь запостили раздел встроенного хелпа про девелопинг мультисреадед аппликайшен.
Dennis I. Komarov (2010-03-16 15:12:00) [5]
> misha_gr (16.03.10 14:53) [8]
Потокобезопасность достигается пониманием как оно работает...
Медвежонок Пятачок (2010-03-16 15:09:00) [6]из-за области видимости
и у тебя есть мега-подозрение, все значениялокальной переменной процедуры видимы во всех вызовахэтой процедуры?
что мешает проверить?
misha_gr (2010-03-16 15:05:00) [7]Локальными переменными они называются из-за области видимости. Уважаемый Пятачок, нет желания отвечать на поставленные вопросы - не тратьте своё время.
Медвежонок Пятачок (2010-03-16 14:59:00) [8]они потому локальными и называются, оттого что они не глобальные.
misha_gr (2010-03-16 14:53:00) [9]Хорошо, сформулируем вопрос по другому: потокобезопасная функция, как ее отличить от потокоНЕбезопасной? Как достигается потокобезопасность? Как написать потокобезопасную функцию?
Вот локальные переменные, например, создаются новые экземпляры каждый раз при входе в функцию?
Медвежонок Пятачок (2010-03-16 14:24:00) [10]Что мы имеем на выходе? Корректные значения или как получится?
На выходе, мы, (все нормальные земляне) имеем результат инттустр.
Германн (2010-03-16 14:21:00) [11]
> Вопрос в другом: разные потоки одновременно вызывают IntToStr,
> для разных интегеров. Что мы имеем на выходе? Корректные
> значения или как получится?
>
Откуда такая паранойя?
Медвежонок Пятачок (2010-03-16 14:19:00) [12]Сам по себе ИнтТуСтр безопасен как секс в титановом презервативе без партнера.
misha_gr (2010-03-16 14:18:00) [13]Ну кагбэ предполагается, что общие ресурсы защищены от одновременного изменения тем или иным образом. Вопрос в другом: разные потоки одновременно вызывают IntToStr, для разных интегеров. Что мы имеем на выходе? Корректные значения или как получится?
Ну и имеется в виду куча общеприменяемых функций Delphi. IntToStr - просто первое что в голову пришло.
Медвежонок Пятачок (2010-03-16 14:09:00) [14]запросто.
десять вторичных потоков меняют значение глобального интегера.
а в главном потоке мы делаем IntToStr этому интегеру.
misha_gr (2010-03-16 14:08:00) [15]> IntToStr может быть запросто небезопасен и будучи вызванным в
> основном потоке.
нельзя ли пояснить?
Медвежонок Пятачок (2010-03-16 14:05:00) [16]IntToStr может быть запросто небезопасен и будучи вызванным в основном потоке.