![]() |
1
5
一般只要…
很好。 |
![]() |
2
2
在正常的python中,这是安全的,因为对变量的所有访问都受gil(全局解释器锁)保护,这意味着对变量的所有访问都是同步的,因此一次只能有一个线程这样做。唯一的问题是@eloff指出,如果您需要读取多个值并需要它们保持一致,那么在这种情况下,您需要设计一些访问控制。 |
![]() |
3
1
这很好,因为您只有一个编写线程。只读操作始终是线程安全的。当您读取多个相关值并期望它们之间有某种形式的一致性时,就会出现这种情况的例外。因为写入可以在任何时候发生,所以对多个值的读取可能不一致,甚至可能根本没有任何合理的程序状态。在这种情况下,锁用于使多个读取看起来像是一个单独的原子操作,不包括任何写入操作。 |
![]() |
4
1
很安全。 当计数从n增加到n+1时,创建“n+1对象”,然后计数从引用“n对象”切换到新的“n+1对象”。 没有阶段计数是指除“n对象”或“n+1对象”之外的其他对象。 |
![]() |
5
0
它是安全的,因为它不是特别重要。奇怪的事情,比如价值不更新,什么时候应该不重要。当你假装一个正在被读取和写入的整数是“原子的”时,很难得到一个明确的答案,因为它依赖于精确的体系结构和其他一些东西。但有时它不会做比给出错误数字更糟糕的事情,所以继续……或者使用队列。:) |