这不是一个问题,因为我已经实现了自己的集合,但仍然对此有点好奇。std :: map和线程安全的奇怪问题
我有一个单例提供对各种公共组件的访问,它拥有带有线程ID的这些组件的实例,因此每个线程都应该(并且我检查过)拥有它自己的组件实例,如Oracle数据库访问库。
当运行系统(这是一个C#应用程序被称为C++库)与多个传入的请求似乎一切都运行良好了一阵子,但随后崩溃了与AccessViolation例外。单步执行调试器时,问题似乎出现在一个线程完成并清除其会话信息(保存在std :: map对象中)时,保存在另一个线程的单独集合实例中的会话信息也会被清除。
这是其他人遇到或知道的东西吗?我尝试过四处看看,但找不到任何有关此类问题的信息。
Cheers
“我有一个单身......”那就是那个问题。 :) – GManNickG 2011-03-07 20:27:25
老实说,我很惊讶,没有人说,越早:) – 2011-03-08 08:01:18