为什么 boost lockfree 大小固定为 65535 个对象?
typedef boost::lockfree::queue<int, boost::lockfree::fixed_size<true>> MyQueue;
MyQueue queue(1024*100);
上面的代码抛出异常。
我在代码中发现的原因是基于数组的空闲列表仅支持 16 位地址空间。
这是什么原因?我在 64 位 linux 机器上使用它。那么为什么将寻址限制为 2**16 项?队列是否使用“short int”进行索引?原子指令是否仅适用于 16 位字长?
我应该怎么做才能拥有比这更多容量的固定大小的队列?