Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Внизмежпоточная защита данных Найти похожие ветки
← →
lord827 (2012-04-14 16:08) [0]всем привет народ подскажите правильно ли я делаю
меж поточную защиту данных . компилятор 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
если не сихронизироватся то гемор начинался с первой секунды.
если кривовато изложил суть, пишите, поправлю.
← →
sniknik © (2012-04-14 16:24) [1]> если кривовато изложил суть, пишите, поправлю.
так же как тут?
http://delphimaster.net/view/1-1333197347/
Дмитрий Белькевич (05.04.12 22:02) [26]
>удалось мне полностью перехват установить, теперь и при создании файлов виндой, все перехватывается
рассказал бы хоть народу как...
← →
lord827 (2012-04-14 16:32) [2]рассказал бы хоть народу как... чтоб у касперского работы прибавилось ...))
← →
Anatoly Podgoretsky © (2012-04-14 18:01) [3]> lord827 (14.04.2012 16:08:00) [0]
Taction у каждого потока свой, откуда могут быть проблемы, данные не
пересекаются
← →
lord827 (2012-04-14 19:21) [4]type Taction = record .....
araction:array of Taction;
объявлен не внутри потоков
у каждого потока свой
tempaction:Taction;
я ожидал гемор при присвоении
tempaction:=araction[n];
← →
Сергей М. © (2012-04-14 20:57) [5]
> я ожидал гемор при присвоении
> tempaction:=araction[n];
"гемор" начинается с момента когда требуется обратное присвоение, т.е.
araction[n] := tempaction;
а если его нигде нет , то поход за свечками можно на время отложить)
← →
sniknik © (2012-04-14 21:37) [6]очень странно,
Великий защитник Касперского, и победитель Системы... не знает простых вещей.
← →
lord827 (2012-04-14 22:00) [7]точно, именно обратное присвоение araction[n] := tempaction; причина хаоса если без синхронизации
немного отступим от темы
да это материал первого клоса,
вот только обидно что лет через 10
знания из первого класса вообще небудут востребованы
и все проги будут писатся банальным перемещением мышки
а наличие клавиатуры на компе программиста будут обсуждать
как сечас обсуждают безусловные переходы типа goto
← →
Сергей М. © (2012-04-14 22:29) [8]
> lord827 (14.04.12 22:00) [7]
> обидно что лет через 10
> знания из первого класса вообще небудут востребованы
Через 10 это вряд ли случится)
Технологии хоть и шагают семимильными шагами, но до изобретения ИИ, который позволит компьютерам программировать самих себя, еще ой как далеко.
А до тех пор пока это не случится кому-то таки придется делать это ручками)
← →
Наивный (2012-04-15 03:27) [9]Да, квота на безусловные переходы типа goto закончатся уже под занавес 2012, а лимиты на клавиатуры на компе программиста еще не ищерпаны, поэтому сей знаменательный день нужно подождать.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.169 c