实际上用标准库也会有这个问题,这个姓chen的给老美卖命的还写了篇文章:
https://devblogs.microsoft.com/oldnewthing/20231103-00/?p=108966
而用qt的qhash qmap也有这个问题,如果单线程则没问题。
这个作者说,不同的qhash实例,他们内部实际上共享了一些数据,所以其他实例释放时可能那些数据已经没了,从而导致空指针崩溃。
解决方法也很简单,用 一下这个api即可:
https://nsl.cz/qhash-and-qmap-in-threaded-application/
QHash<QString,int> *sharedHash = new QHash<QString,int>; sharedHash->setSharable(false);
那么老铁们你们试试,有效果请告知。
另外读写多线程最好加锁了。