![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
межпоточная защита данных
lord827 © (2012-04-14 16:08:00)всем привет народ подскажите правильно ли я делаю
меж поточную защиту данных . компилятор XE2
есть массив рекордов
type Taction = record .....
araction:array of Taction;
он общий для нескольких потоков. при создании потока поток плучает номер итема из массива araction
а в асамом потоке уже идет обработка данных
procedure TMainThread.Execute;
var tempaction:Taction;
begin
// чтоб побыстрее освободить основной массив
работаем через tempaction
FEvent.waitfor(infinite);
FEvent.ResetEvent;
tempaction:=araction[n];
FEvent.SetEvent;
здесь основная работа над итемом массива но уже через tempaction
end;
я пробовал вообще без синхронизации
гонял порядка 500 потоков натравленных на один и тодже итем массива
но так ни разу и не получил кривых данных(кашу), ошибку доступа к памяти , или хоть какой зависон . смутно припоминаю но на дельфи 6
если не сихронизироватся то гемор начинался с первой секунды.
если кривовато изложил суть, пишите, поправлю.
Наивный (2012-04-15 03:27:00) [1]Да, квота на безусловные переходы типа gotoзакончатся уже под занавес 2012, а лимиты на клавиатуры на компе программистаеще не ищерпаны, поэтому сей знаменательный день нужно подождать.
Сергей М. (2012-04-14 22:29:00) [2]
> lord827 (14.04.12 22:00) [7]
> обидно что лет через 10
> знания из первого класса вообще небудут востребованы
Через 10 это вряд ли случится)
Технологии хоть и шагают семимильными шагами, но до изобретения ИИ, который позволит компьютерам программировать самих себя, еще ой как далеко.
А до тех пор пока это не случится кому-то таки придется делать это ручками)
lord827 (2012-04-14 22:00:00) [3]точно, именно обратное присвоение araction[n] := tempaction; причина хаоса если без синхронизации
немного отступим от темы
да это материал первого клоса,
вот только обидно что лет через 10
знания из первого класса вообще небудут востребованы
и все проги будут писатся банальным перемещением мышки
а наличие клавиатуры на компе программиста будут обсуждать
как сечас обсуждают безусловные переходы типа goto
sniknik (2012-04-14 21:37:00) [4]очень странно,
Великий защитник Касперского, и победитель Системы... не знает простых вещей.
Сергей М. (2012-04-14 20:57:00) [5]
> я ожидал гемор при присвоении
> tempaction:=araction[n];
"гемор" начинается с момента когда требуется обратное присвоение, т.е.
araction[n] := tempaction;
а если его нигде нет , то поход за свечками можно на время отложить)
lord827 (2012-04-14 19:21:00) [6]type Taction = record .....
araction:array of Taction;
объявлен не внутри потоков
у каждого потока свой
tempaction:Taction;
я ожидал гемор при присвоении
tempaction:=araction[n];
Anatoly Podgoretsky (2012-04-14 18:01:00) [7]> lord827 (14.04.2012 16:08:00) [0]
Taction у каждого потока свой, откуда могут быть проблемы, данные не
пересекаются
lord827 (2012-04-14 16:32:00) [8]рассказал бы хоть народу как... чтоб у касперского работы прибавилось ...))
sniknik (2012-04-14 16:24:00) [9]> если кривовато изложил суть, пишите, поправлю.
так же как тут?
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1333197347&n=0
Дмитрий Белькевич (05.04.12 22:02) [26]
>удалось мне полностью перехват установить, теперь и при создании файлов виндой, все перехватывается
рассказал бы хоть народу как...