Главная страница
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.109 c
2-1331794898
bash77
2012-03-15 11:01
2013.03.22
очистить массив, удалить или еще чего с ним


15-1343498887
stas
2012-07-28 22:08
2013.03.22
отправить факс через VentaFax (из моей программы)


2-1340276861
Xmen
2012-06-21 15:07
2013.03.22
Чтение из секции только значение.


2-1347106775
Jimmy
2012-09-08 16:19
2013.03.22
Многоязыковое приложение


15-1350073802
Юрий
2012-10-13 00:30
2013.03.22
С днем рождения ! 13 октября 2012 суббота