我在MSDN 2003中看到 STL在VS.NET 2003中多了一些线程安全编译选项, /MT, /MTd, /MD, or /MDd 。让我产生了强烈的兴趣,可是我手里没有VS.NET 2003,不能亲手做试验看看这些选项到底有多“安全”。比如,这些线程安全机制是否能实现我在遍历一个全局List的时候线程互斥?请大家帮忙,多谢啦。

解决方案 »

  1.   

    我的经验不安全!!!!!当时以为没事了,可是老出问题,后来才查出STL的线程安全在某些时候是不成的!!!当时我使用的是map一个线程insert,一个线程find,有时候find就出错后来加上同步才没事了
      

  2.   

    呵呵,还是自己加Lock比较放心
      

  3.   

    stl自己不负责同步的啊为了平台无关性,他不可能把同步操作引入stl,因为标准c++没有同步的原语。所以同步只能自己做
      

  4.   

    这些选项是跟运行时有关的比方说 memcpy 函数,是否线程安全。
    跟stl没什么关系
      

  5.   

    ddddh(叶君临) 说的有道理/MT, /MTd, /MD, /MDd老早就有了,vc6中也有,和STL一点关系没有vc中的STL中也有一样Lock之类的东西不过这些Lock是用来同步访问模板类的静态成员变量的