此代码是否存在任何同步/引用问题?同步到要实例化的对象
(假设myStrings
已经被实例化。)
MySynch.java
:
public class MySynch
{
public static String[] myStrings = new String[10];
public static void updateStrings()
{
synchronized (myStrings)
{
myStrings = new String[10]; // Safe?
myStrings[0] = something[0];
myStrings[1] = somethingElse[4];
}
}
}
阵列myStrings
可以从由一个以上的线程来读取,并且具有一个线程更新(写入)它的对象通过运行updateStrings()
。从中读取的线程也会使用synchronized (myStrings)
块来读取它,当然,为了安全起见。
是否存在锁定阵列并再次实例化的问题里面的块是否锁定它(如上所述)?
谢谢,这听起来不错。还有什么事情需要我去做,比如将课堂声明为最终课程(如果可以的话)或者其他什么? – Doddy
不需要。班上没有任何事情可以将它用作同步监视器。 –
请注意,您可以声明一个类最终。但这意味着它不能被扩展。 –