為什么C++標(biāo)準(zhǔn)庫中atomic shared_ptr不是lockfree實(shí)現(xiàn)?
2023-11-18 13:40 作者:大方老師單片機(jī)課堂 | 我要投稿
為什么C++標(biāo)準(zhǔn)庫中atomic shared_ptr不是lockfree實(shí)現(xiàn)?
把 shared_ptr 做成 lock_free,應(yīng)該是沒有技術(shù)上的可行性。shared_ptr 比一個(gè)指針要大不少:最近很多小伙伴找我,說想要一些C++的資料,然后我根據(jù)自己從業(yè)十年經(jīng)驗(yàn),熬夜搞了幾個(gè)通宵,精心整理了一份「C++資料從專業(yè)入門到高級(jí)教程+工具包」,點(diǎn)個(gè)關(guān)注,全部無償共享給大家!??!
評(píng)論區(qū)回復(fù)“888”,關(guān)注我之后私信回復(fù)“666”,即可拿走。
1. 它可以是一個(gè)指向成員函數(shù)的指針,這貨通常比普通指針大一些,有可能大50%或100%,看平臺(tái)與實(shí)現(xiàn)吧;
2. 它可以有自定的釋放函數(shù),又多一個(gè)指針;
3. 它支持觀察者,這個(gè)不會(huì)是無代價(jià)的。
總之,share_ptr 的體積不小,不太可能有哪個(gè)平臺(tái)能夠支持這種體量的無鎖原子操作。至于自旋鎖之類,肯定是不能通用的,否則死鎖了算誰的?
標(biāo)簽: