我有多个线程使用"++"或" - "操作访问单个Int32变量.
我们是否需要在访问之前锁定,如下所示?
lock (idleAgentsLock)
{
idleAgents--; //we should place it here.
}
Run Code Online (Sandbox Code Playgroud)
或者如果我不进行锁定会有什么后果?
No ++/ - 不是原子操作,但读取和写入整数和其他原始时间被认为是原子操作.
看到这些链接:
此博客文章对您也有一些兴趣.
我建议Interlocked.Increment在联锁类原子实现++/-运算符.
| 归档时间: |
|
| 查看次数: |
506 次 |
| 最近记录: |