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

Вниз

Синхронизация доступа к хешу.   Найти похожие ветки 

 
Дмитрий С ©   (2010-08-17 03:55) [0]

Задача теоретическая.
Есть некий хеш (урезанный аналог TStringList): Реализованы только следующие функции:
* Задание значения целиком. (SL.Values[name]:=value)
* Удаление значения (по name). (SL.Delete(SL.IndexOfName(name)))
* Запрос значения (по name). (Value := SL.Values[name])
* Получение списка ключей (SL.Names[0..SL.Count-1]).

Никакие стандартные средства синхронизации недоступны, известно лишь, что задание значения одновременно двумя потоками не разрушает значение (записывается значение одного из этих потоков).

Есть особое значение хеша: Data=... Необходимо организовать синхронизацию доступа к этому значению (как при использовании критических секций). Т.е. у  любого потока должна быть возможность монопольно считать данные, обработать, записать обратно.

Возможно ли это?


 
Palladin ©   (2010-08-17 05:29) [1]


> задание значения одновременно двумя потоками не разрушает
> значение

Проблема параллельного доступа отнюдь не в записи, а в чтении значения. Основная задача параллельного программирования, заблокировать изменения на время чтения значения, которое имеет место в данное время в данном месте. Это как железная дорога. Поезд нельзя пустить по одноколейке с будущим разветвлением на двуколейку не зная на какой путь отправился впереди идущий.


 
Palladin ©   (2010-08-17 05:30) [2]

Блин, слабоватый пример получился )



Страницы: 1 вся ветка

Текущий архив: 2010.11.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
15-1281454327
pasha_golub
2010-08-10 19:32
2010.11.21
Курсы валют центробанка Украины


15-1280295714
И. Павел
2010-07-28 09:41
2010.11.21
Ученые "перепрограммировали" клетку


2-1282828830
PeSmaker
2010-08-26 17:20
2010.11.21
"Вытаскивание" нужной информации из HTML-страницы.


3-1247648524
Цукор5
2009-07-15 13:02
2010.11.21
ожидание запуска FireBird a


2-1283239564
И. Павел
2010-08-31 11:26
2010.11.21
Сюрприз при использовании ADO + MS SQL + пустой параметр ftString