1
0
这里的最佳方法是创建集合的副本,然后对其进行迭代。它有很大的内存开销(但很快就会释放)。 伪代码:
而且,对每个项使用锁的代码将无法工作,因为其他线程可能会修改集合,并且会导致错误,因为foreach不允许修改集合。 |
2
0
我只需要选择您的第一个选项,其中foreach周围有读取区域,因为在读取块中允许多个线程,所以速度很慢并不重要。另一方面,独占写操作相当快。所以这应该是一个很好的解决方案。 |
a a · 为什么在这个可重入锁示例中需要引用计数? 2 年前 |
JohnLBevan · 为什么原子语句上需要锁提示? 6 年前 |
Jay Wang · 生产者/消费者实施:陷入消费者循环 6 年前 |
Andremoniy · 悲观写入是否锁定整个表? 6 年前 |
Marcus Cemes · 选择。。。用于更新在提交后选择旧数据 6 年前 |
Ins0maniac · Rails,锁定数据库中的记录 7 年前 |