![]() |
1
2
虽然许多程序员忽略了这一点,但您可能会遇到一个问题,因为对文件的写入不是原子的。当作者这样做的时候
它可以分成两个(或更多)部分:首先它写
如果读卡器在这些步骤之间执行,它可能会
这不太可能发生在shell的短写操作中
另外,由于读卡器每次都从一开始就在读取文件,所以您不必担心从上一次停止的地方开始读取。 另一种方法是让编写器写入一个具有不同名称的文件,然后将该文件重命名为读卡器正在查找的文件。重命名是原子的,所以你一定要读所有的或什么都不读。 |
![]() |
2
1
至少从你的例子来看
和
|
![]() |
a a · 为什么在这个可重入锁示例中需要引用计数? 2 年前 |
![]() |
JohnLBevan · 为什么原子语句上需要锁提示? 6 年前 |
![]() |
Jay Wang · 生产者/消费者实施:陷入消费者循环 6 年前 |
![]() |
Andremoniy · 悲观写入是否锁定整个表? 6 年前 |
![]() |
Marcus Cemes · 选择。。。用于更新在提交后选择旧数据 6 年前 |
![]() |
Ins0maniac · Rails,锁定数据库中的记录 7 年前 |