gpt4 book ai didi

c++ - 如何将 64 位机器的 boost lockfree 大小增加到超过 65535 个对象?

转载 作者:太空狗 更新时间:2023-10-29 23:05:40 26 4
gpt4 key购买 nike

继续 why is boost lockfree freelist size is limited to a maximum of 65535 objects? 中的问题

如何在 64 位机器的情况下增加队列的大小。

typedef boost::lockfree::queue<int, boost::lockfree::fixed_size<true>> MyQueue;
MyQueue queue(1024*100); << how to increase the size to more than 65534?

Boost 实现向队列项添加额外的标记位以避免 ABA 问题。目前它使用 32 位值(16 位用于指针,16 位用于标记)。

如何将其更改为使用 64 位值(32 位用于指针,32 位用于标记)?

将 tagged_index::tag_t 和 index_t 更改为基于 unin32_t 的 ba 是否足够?

最佳答案

如前所述,答案在这里:https://stackoverflow.com/a/14957828/1065190 (由实现者编写,Tim Blechmann):

for 64bit platforms one might be able to adapt the boost.lockfree code to use 32bit instead of 16bit indices. but it would require some non-trivial changes to implement things correctly.

关于c++ - 如何将 64 位机器的 boost lockfree 大小增加到超过 65535 个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18329985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com