gpt4 book ai didi

android - 同步 ("Cache_Group")部分被跳过,为什么会这样?

转载 作者:IT王子 更新时间:2023-10-28 23:53:10 24 4
gpt4 key购买 nike

我试图弄清楚如果我尝试通过它同步不同的值,我的 synchronize("Group_Name") 会被跳过,为什么会这样。

考虑以下问题。

我有一个名为“Group1”的 SyncGroup,其中有一个名为“MBOGroup1”的 MBO,其中有属性“name”、“password”、“codeCheck”。我获取数据并提取属性为“releaseCode”

现在我有另一个名为“GroupSub1”的 SyncGroup,其中有一个名为“MBOSubGroup1”的 MBO,我在其中传递属性“releaseCode”我得到了一些结果。

条件如下

如果我为 "MBOGroup1"获得多行,我为 "GroupSub1"放置一个 for 循环,并将每个 "releaseCode"数据传递给 "GroupSub1"并提取结果

大多数情况下,某些 releaseCode 被跳过,我得到“GroupSub1”的不正确“结果”,为什么会这样?是因为 for 循环的执行速度比 synchronize() 字或其他类似 CacheGroup Policies as OnDemand 和 time as 10seconds 的速度快

请帮忙。

由于我需要在其中放置超过 4 个 for 循环的数据,我 future 的 syncGroup 结果取决于从前一个获取的结果。

最佳答案

sychronized("Cache_Group")

首先想到的是在字符串上同步是没有用的。

根据给定的引用而不是值来同步锁定对 block 的访问。使用“String”会破坏这个目的,因为字符串是不可变的,并且两次调用 synchronized("Cache_Group") 将构造具有 2 个不同引用的 2 个字符串,从而允许第二次迭代打破预期的锁定。

编辑:@see ReentrantLock 以获得更好的访问控制

关于android - 同步 ("Cache_Group")部分被跳过,为什么会这样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30574249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com