|
2
|
| Molten Ice · 技术社区 · 7 年前 |
|
|
1
1
你想知道变量是否相等吗?好吧,那又怎样?如果您的“线程安全”相等测试表明它们相等,那么是什么阻止线程B在您执行相等测试的时间和您对信息执行操作的时间之间更改它们中的任何一个。 当程序处于某个特定状态时 ,然后你想做点什么
所以,是的,你需要
|
|
|
2
1
首先,我要对以下声明表示异议:
事实上,
我承认AR的行为可能对你的行为没有帮助。但你会发现
您(正确地)声明这不是线程安全的,但(在我看来)这是原子类型所期望的。一般来说,两个原子操作的序列是非原子的。一般来说,要作为一个原子整体执行两个操作,需要执行某种形式的锁定。
缺点是存在死锁的风险。。。如果两个线程同时执行上述代码
对该缺陷的(假设)修复方法是确保线程锁定
但正如你所见,在很小的一部分情况下,hashCode排序是行不通的。 是 解决这个问题的办法。。。使用互斥锁。
底线是测试是 没用
这个
另一种方法是使用外部锁定
|
|
3
0
我想你不能就这样
|
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 2 年前 |
|
|
András Takács · Python多线程错误 2 年前 |