13,870
社区成员




/// <summary>
/// 示例
/// </summary>
class ClassA
{
private:
/// <summary>
/// 可能同步访问的成员
/// </summary>
int m_var;
public:
/// <summary>
/// 取得私有成员值
/// </summary>
int Get() const
{
return this->m_var;
}
/// <summary>
/// 设置私有成员值
/// </summary>
void Set(int var)
{
this->m_var = var;
}
};
/*
是这样的, 当有多个线程同时访问 ClassA.Get() 的时候, 当然是没有问题的.
可是当其中有一个或多个线程同步执行 ClassA.Set(int) 方法时就可能出现无法预知的后果.
那么, 我该如何设计, 一旦某个线程进入了 ClassA.Set(int) 方法后, 其它线程无论是调用
ClassA.Get() 还是 ClassA.Set(int) 都将阻塞? 而且还要考虑被阻塞线程继续执行的先后顺序.
有点就是, 仅限于类的设计, 无法更改或调整线程的执行代码.
希望有经验的可以给些指点, 有规范是方法更好, 谢谢!
*/
/// <summary>
/// 取得私有成员值
/// </summary>
int Get() const
{
// 等待锁释放?
return this->m_var;
}
/// <summary>
/// 设置私有成员值
/// </summary>
void Set(int var)
{
// 等待锁释放?则加锁
this->m_var = var;
// 释放锁
}