【发布时间】:2011-09-22 15:09:13
【问题描述】:
此代码是否存在任何同步/引用问题?
(假设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) 块来读取它,当然,为了安全起见。
锁定数组并在内部锁定它的synchronized 块(如上)再次实例化它是否存在问题?
【问题讨论】:
标签: java multithreading concurrency locking synchronized-block