好,朋友们。我知道您可以使用ostream和istream读取文件并进行排序(至少在C ++中)。我的问题是,> Minecraft 这一切怎么可能?如何修改每2秒保存的日期??我应该打开流而不关闭它,还是有一种特殊的功能或方法可以做到这一点?
谢谢!!
最佳答案
我不知道Minecraft是如何做到的,但是您可以通过多种方式实时获得一致的快照。例如。
如果增变器在快照期间尝试更改数据结构的相关部分,则该数据结构可以创建该数据结构的相关部分的卷影副本。
可以锁定所有节点,以防止在进行快照时更改器更改它们。如果更改程序尝试获取节点上的锁,则可能导致快照过程将节点移至队列的前面...,从而使更改程序仅在短时间内被阻塞。
他们可能只是简单地将快照创建过程实现为增量式,并且典型的增量可能足够快,以至于用户通常不会注意到mutator在短时间内暂停。 (我的猜测是,不到1/10秒的任何时间都是不明显的……除非它生成明显的“视觉伪像”。即使那样,Minecraft的渲染质量也使得用户无论如何也不会过分担心。至少,这是我从观看其他人的比赛中观察到的...)
但是可以肯定的是。该实现可能非常针对Minecraft,并且需要手动调整。没有通用的Java库类可以神奇地完成这种事情。我怀疑他们是否使用等效于IOStreams的Java来做到这一点。