为了账号安全,请及时绑定邮箱和手机立即绑定

我现在有一个类A被多线程访问,每个线程通过类A访问A的内部变量,只是读取,需要加锁吗?

我现在有一个类A被多线程访问,每个线程通过类A访问A的内部变量,只是读取,需要加锁吗?

RISEBY 2023-03-03 18:14:43
如果需要加锁用以下方式加锁有没有问题。class A{public:A();~A();public:std::hash_map<__int64,LPVOID> act_var;public:LPVOID read(__int64);private:kelib::mutex::MutexLock mutex_;};A::A(){}A::~A(){}LPVOID A::read(__int64 index){kelib::mutex::MutexLockGuard lock(mutex_); //加锁std::hash_map<__int64,LPVOID>::iterator iter=act_var.find(index);if(iter!=act_var.end()){return (*iter).second;}return NULL;}
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

Java的多线程两种方式。一是准备好类从Thread类继承。其一是实现Runnable接口。前者是线程运行的格式(如果该实例是线程t):t.start();在一个新的线程(吨)。开始的形式,后者()。

查看完整回答
反对 回复 2023-03-06
?
桃花长相依

TA贡献1860条经验 获得超8个赞

我有个疑问,你只加锁,不解锁吗?还是说你的解锁没写出来?而且,你没有修改要读取的变量的话,是不是就可以不用锁定了?

查看完整回答
反对 回复 2023-03-06
  • 2 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信