我的程序中有一些数据类型的数组(整数、字符串,甚至是用户定义的类对象)和多个线程。我希望能够找到数组在用某些值初始化后是否已更新。一种想法是关联数组中值的散列,每当我想检查数组是否已更新时,重新计算散列。在 c++ 中还有其他方法吗?或者我们可以检查自上次检查以来内存地址范围是否已更新?
谢谢
最佳答案
您可以将数组封装在一个类模板中,该模板为您需要的任何读写操作提供外观,并在更新时标记数组 dirty
- 重置 dirty
标记在每次检查中。
不确定如何在多个读取器/写入器线程中实现这种可靠性,但我想这取决于访问模式和您想要的确切语义。
[散列不起作用,因为散列总是会发生冲突。]
关于c++ - 如何检查数组更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4288995/