多线程中map全局变量有问题,求解
大海雪山 2010-12-30 03:04:03 rt,使用全局变量
// 自定义结构体
typedef struct _MYSTRUCT
{
SOCKET s; // 套节字句柄
int olCount;//在线计数器
}MYSTRUCT, *PMYSTRUCT;
std::map<char*, MYSTRUCT> g_map;//全局变量
std::map<char*, MYSTRUCT>::iterator g_mapiterator;
建立线程池,在线程处理函数中执行Insert操作,
ThreadProc()
{
g_map.insert(。。。);此处插入
}
运行后,创建两个线程,线程1中g_map插入v1,线程2中执行插入v2操作,
我希望实现的是,线程1和2共享map,即加入同一个红黑树中。
但实际,结果是,两个线程插入时,都是单独的,线程1中插入的数据,在线程2中无法看到。
因为刚开始接触stl,查资料说stl线程安全的问题,具体原因还请各位大虾指点。
另,如何实现多线程下map数据的共享!谢谢。