相关疑难解决方法(0)

从Visual Studio 6升级有哪些令人信服的论据?

我有一个客户仍在使用Visual Studio 6来构建生产系统.他们编写了使用STL并在多处理器机器上运行的多线程系统.

偶尔当他们改变其服务器机器的规格或增加其负载时,他们会"奇怪"地难以重现错误......

我知道Visual Studio 6开发存在一些问题,我想说服他们转向Visual Stuio 2005或2008(他们有Visual Studio 2005并将其用于某些项目).

此问题的目的是汇总已知问题或升级原因的列表,以及讨论或报告这些问题的链接.如果这些问题如何困扰你,那么拥有现实生活中的"恐怖故事"也会很有用.

c++ stl visual-c++-6 visual-studio visual-c++

12
推荐指数
4
解决办法
2593
查看次数

std :: list thread_safety

  1. 我有一个列表,其中一个线程只是push_back和其他线程偶尔循环遍历列表并打印所有元素.在这种情况下我需要锁吗?
  2. 我有指向其他对象中的元素的指针.有安全感吗?我知道当需要更多空间时,向量将移动所有对象,因此指针将无效.

    mylist.push_back(MyObj中(1));
    if(someCond)
    {_
    myLastObj =&mylist.back();
    }

_myLastObj 是类型的 MyObj*

如果我使用了一个向量,该对象将被移动到另一个位置,指针将指向垃圾.列表是否安全?

c++ stl thread-safety stdlist

3
推荐指数
2
解决办法
7287
查看次数

可以在与find同时从stl:map中删除它

我想知道是否可以从stl:map中删除与find同时删除?并发意味着 - 两个线程同时尝试一个擦除,一个同时调用查找.

c++ stl

1
推荐指数
1
解决办法
151
查看次数

std :: map和std :: set是否是线程安全的?

我有一个问题:std :: map和std :: set是否安全?我在我的多线程应用程序上使用这个集合,有时候映射和设置工作.

谢谢!

UPD.我的代码:

std::map<int, unsigned long> ClientTable;

int sendulong(int socket, char * data) //<--- Many threads uses this function
{
  write(socket, ClientTable[socket]); //<--- ClientTable[[socket] <-- using of map
}
Run Code Online (Sandbox Code Playgroud)

如何修复此代码以确保线程安全?谢谢!

c++ map set

0
推荐指数
1
解决办法
834
查看次数

标签 统计

c++ ×4

stl ×3

map ×1

set ×1

stdlist ×1

thread-safety ×1

visual-c++ ×1

visual-c++-6 ×1

visual-studio ×1