请教关于map的线程安全
加入有这样一个map:
typedef struct {int a, string s} A;
map<int, A> mapia;
// 初始化 mapia[0], mapia[1] ... mapia[10]
线程A:
lock();
A *sa = &mapia[0];
unlock();
// 使用 sa 的值
fprintf(stderr, "a: %d", sa->a);
线程B:
// 可能会插入/删除其他值, 但肯定不会对 mapia[0] 有写操作
问题:
在并发条件下, 线程A中, 使用sa时(比如向上面的fprintf操作), 需要加锁吗?