水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:lockfree的容器的cpu cache同步
楼主
|
ziqin
|
2022-09-04 13:43:09
|
展开
最近用boost/ipc/spsc_queue,是个lockfree的队列,在用的时候,经常会发现有队列满,push不进队列的情况。开始以为是队列长度设得不够,但是发现即使把队列设得很长,还是会偶尔有队列满得情况。后来发现,如果producer和consumer两边都用aquire 和 release fence框起来,即使队列很短,也没有队列满的情况。难道lockfree之后,cpu cache同步需要自己加?
--
FROM 115.193.179.*
2楼
|
ziqin
|
2022-09-04 15:43:52
|
展开
我的意思是,在我的这个情况里,队列满不满不是加/取数据的效率问题,而是加/取数据两个进程所在的cpu cache同步到共享内存里的问题
【 在 Bernstein 的大作中提到: 】
: 队列满,说明从队列取数据的效率低
: 队列不满,说明向队列加数据的效率低
: 当然,这种都是对照来看
: ...................
--
FROM 115.193.179.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版