Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

межпоточная защита данных   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.072 c
2-1343932360
Drowsy
2012-08-02 22:32
2013.03.22
Какой таблице принадлежит запись со значением ключа?


15-1339062999
alex3038
2012-06-07 13:56
2013.03.22
Ищу компоненты для работы с направленными графами


6-1256903748
Валигози
2009-10-30 14:55
2013.03.22
Как получить ВСЕ свойства пользователя из Active Directory?


15-1353414294
Сергей М.
2012-11-20 16:24
2013.03.22
Непонятка на стыке ajax и PHP


15-1332788348
IceKhan
2012-03-26 22:59
2013.03.22
как включить отображение системных файлов в OpenDialog