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

Pro*_*oid 44 android synchronization

我试图找出我的同步("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策略更快,因为OnDemand和时间为10秒

请帮助.

因为有些数据我需要放置4个以上的循环,我的未来syncGroup结果取决于从前一个取得的结果.

Aar*_*ris 2

sychronized("Cache_Group")
Run Code Online (Sandbox Code Playgroud)

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

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

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