【 在 cat201702 的大作中提到: 】
: 根据C++的std::map的文档说明,插入数据后不会导致迭代器和引用失效, 那么一个线程向一个std::map插入数据,而别一个线程向同一个std::map查找数据,这个std::map不加锁,是否会出现问题?
: deepseek的说法如下:
: 用户可能认为,因为迭代器不会失效,所以查找线程不会被中断。但实际上,插入操作可能修改内部结构,导致查找线程看到中间状态,破坏map的不变性。比如,红黑树的旋转操作可能会临时改变节点链接,此时查找可能会错误地访问节点。
: ...................
这个就是 金鱼 说的 COW 问题呀,写完后commit。
map的实现没有考虑这个问题,需要自己弄。
--
FROM 221.218.61.*