Оптималдуу стратегия C ++ хэш-жады, жипке коопсуз

(Мен мунун бардыгын жасай турган даяр конструкциянын ЭМЕС долбоорун иштеп чыгууга кызыкдармын.)

Бизде HashTable классы бар дейли (дарак катары ишке ашырылган hash-map эмес, hash- стол) жана сегиз жип бар деп. Жазуу үчүн окуунун катышы болжол менен 100: 1 же андан да жакшыраак 1000: 1 деп коёлу. Case A) Бир гана жип жазуучу болуп саналат жана анын ичинде жазуучу, анын ичинде жазуучу HashTableдан окуй алышат (алар бүт хэш столунун үстүнөн кайталанышы мүмкүн) Case B) Бардык жиптер бирдей жана бардыгы окула / жазылышы мүмкүн.

Кимдир бирөө класс жипин коопсуз кылуу үчүн мыкты стратегияны сунуш кылса, төмөнкү жагдайларды эске алуу менен 1. Талаш-тартыштарды эң аз кулпулоо артыкчылыгы 2. Эң аз кулпуларга ээ болуу үчүн экинчи орунда туруу

Менин түшүнүгүм ушул убакка чейин: Бир BIG окурман-жазуучунун кулпусу (семафора). Семафорду адистештирип, В окуясы үчүн ар бир жазуучу булагы бирден сапты камтыган сегиз мисал жазуучу-ресурс болушу мүмкүн (же бул маселе боюнча диапазон). (ошондуктан мен 1 + 8 мутекс деп ойлойм)

Сураныч, эгер мен туура сызык жөнүндө ойлонуп жатсам, жана бул чечимди кантип жакшырта алабыз?

6
задан dsolimano 2 June 2012 в 04:35
поделиться