Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Многопоточное приложение


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 может быть запросто небезопасен и будучи вызванным в основном потоке.


Наверх

Титульная страница Поиск, карта сайта Написать письмо