MSDN 上说的是保证同一时间只有一条线程可对其
访问
我不明白的就是"访问"这个词, 究竟是在写时其它人不能读, 还是说在写时其它人不能读和写???
MSDN 上还说是将变量所在内存保护不允许其它人进入, 那是不是可以理解为在写时不能被其它人读和写?
那如果某个时刻我根据该变量做判断, 根据判断结果做其它事情, 那么在判断完后刚好有线程将变量改变了, 那怎么办?
volatile long m_l = 0;
if (m_l == 100)
{
// 程序执行到这里, 判断已经完成
// 如果这时其它地方调用 Interlocked* 系列函数改变 m_l 的值
// 那我这个判断是不是多余的?
// ....
}
Interlocked* 系列函数可以用在什么场合?
是不是只能用在不能用于判断的场合?