Hlavní navigace

Názor ke článku Sdílení objektů mezi vlákny v C++20 (II) od JSH - Má to jedno zásadní omezení. Je to zamykání...

  • 26. 4. 2024 7:41

    JSH

    Má to jedno zásadní omezení. Je to zamykání jen po dobu volání jedné metody a mezi nimi mi ten objekt může nějaký jiný thread překopat. Zrovna první ukázka kódu by měla být podezřelá. Pokud chci na nějaký objekt volat víc metod po sobě, pak má nejspíš zamykání jednotlivých metod příliš jemnou granularitu.

    Ve výsledku se tímhle způsobem nedá jednoduše ochránit libovolný objekt u kterého se se zamykáním nepočítalo. Ten objekt musí být navržený stylem jedna metoda = jedna transakce.

    Zkusit tímhle způsobem obalit třeba nějaký std kontejner je cesta do pekel.