Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.13 c
15-1332165101
Abra
2012-03-19 17:51
2013.03.22
что-то с логикой не понятно,


3-1285141692
Сергей
2010-09-22 11:48
2013.03.22
Подсказка в DBGrid


15-1340130061
Дмитрий С
2012-06-19 22:21
2013.03.22
Посоветуйте удобную TODO програмку.


2-1333845479
SiDimka
2012-04-08 04:37
2013.03.22
Как инициализировать объект?


15-1333917002
Юрий
2012-04-09 00:30
2013.03.22
С днем рождения ! 9 апреля 2012 понедельник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский