在多线程场景中,我有一个像这样的方法:
该方法会等待对象状态改变并返回 true,或者超时并返回 false。
我的直觉是,
bool WaitForChange( time_duration WaitTime ) const;
该方法会等待对象状态改变并返回 true,或者超时并返回 false。
我的直觉是,
const
是为了保护方法本身不受意外副作用的影响,所以这样做是可以的。但是某些用户可能会认为由于该方法被声明为 const
,对象状态不可能发生改变。那么这个用户是愚蠢的,还是我应该将该方法声明为非 const
以避免混淆呢?
boost::condition_variable
进行等待,并使用boost::mutex
进行锁定。 - Björn Pollex