读写锁的另一种思路

发布于 2022-10-15 09:31:23 字数 213 浏览 34 评论 0

多线程中如果一个锁冲突概率很小,能否简单地用校验数据来确认正确性?

如一个全局变量,存放数据: 123x
其中x为校验数据,那么每次读取时只需要校验最后一位是否为x即可判断读取的有效性,否则重新读取。
在确保读取正确性的前提下,写入后也只要再读取一次判断是否与写入值一致既可,这思路是不是和版本标记有点类似?
另外这样“非线程安全”的读写是否会造成其它未知的错误?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

陈独秀 2022-10-22 09:31:23

不行的,校验本身就不可靠

∞觅青森が 2022-10-22 09:31:23

不行的,校验本身就不可靠
hellioncu 发表于 2011-04-15 11:07

为什么说不可靠呢?
是不是这种情况,当读取不完整数据时,有可能校验值也会=x ?
那是不是可以通过更复杂的校验位,最大程度降低这种"碰撞"?

不念旧人 2022-10-22 09:31:23

为什么说不可靠呢?
是不是这种情况,当读取不完整数据时,有可能校验值也会=x ?
那是不是可以通过 ...
int-main 发表于 2011-04-15 11:11

    整那么复杂,还不可靠,还不如用锁。
简单的数据可以用原子操作

窗影残 2022-10-22 09:31:23

锁真的能消耗你CPU那么多么?  不要走错方向!!!

厌味 2022-10-22 09:31:23

校验,如果出错,大多数情况只能用忙等来等待正确。
相对来说,还不如锁呢。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文