代码如下
input
所以我想知道将sUA返回到同步块内部或外部是否重要?
答案 0 :(得分:0)
那说,鉴于您发布的代码,为什么sUA
是一个实例变量?
为什么要把它当作国家。如果您不需要该状态,最好的办法是return <whatever code is setting sUA>
。
如果您没有显示使用该状态的代码,则请求显示并...
同样private static Object sLock = new Object();
不是使用syncrhonize
的对象引用的正确方法。必须声明final
才能正确保证语义。
更好的方法是使sUA
锁定。而不是使用null
使用NullObjectPattern
并使用一个值来表示您使用null
表示的任何内容。
使用private static final AtomicReference
的值""
或其他 null 值来表示未设置,您可以使用synchronize
同时启用并保留该值。制作更易于维护的正确和更清晰代码。
答案 1 :(得分:-3)
所以我想知道将sUA退回到内部或外部是否重要 同步块?
不,它根本不重要,如果你Group Header Item
Detail Item Detail Item Detail Item
-------------------------------------------- <--horizontal line
Detail Item Detail Item Detail Item
--------------------------------------------
Detail Item Detail Item Detail Item
-------------------------------------------- <-- SUPPRESS
----------------------------------------------------------------- <-- Horizontal Line in group footer
Group Header Item
Detail Item Detail Item Detail Item
--------------------------------------------
Detail Item Detail Item Detail Item
-------------------------------------------- <-- SUPPRESS
-----------------------------------------------------------------
块之外的limited_var = var(variable1[variable1 > 50])
它绝对没问题,如果它在return
块内synchronized
将被正确释放,所以没有任何伤害。
这是一个很好的LINK到jon双向飞碟&amp; Mark Byers回答了类似的问题。