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

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



Память: 0.47 MB
Время: 0.051 c
15-1329058787
Чебурашка
2012-02-12 18:59
2013.03.22
Вызов функции в чужом процессе


2-1335171988
andrewtitoff
2012-04-23 13:06
2013.03.22
IdHTTP и Proxy


2-1338127419
Глеб
2012-05-27 18:03
2013.03.22
Перенос данных из дельфи в хмл


15-1330443309
pasha_golub
2012-02-28 19:35
2013.03.22
IPC в MacOS&Win средствами Delphi XE2


15-1338377064
Handle
2012-05-30 15:24
2013.03.22
проектирование БД интернет-магазина




   Наверх