Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.064 c
15-1267433395
12
2010-03-01 11:49
2010.08.27
Опрос. Сколько уже потратили на бесплатное образование детей?


4-1234818468
istok
2009-02-17 00:07
2010.08.27
проблема с CoShellWindows


15-1265957349
@!!ex
2010-02-12 09:49
2010.08.27
Хоть что нибудь из OpenSource будет работать из коробки??


2-1267000689
AlexAA
2010-02-24 11:38
2010.08.27
Событие "AfterOpen" в TDBGrid


2-1274176208
Petr
2010-05-18 13:50
2010.08.27
Работа с ADO




   Наверх