如果我们有一个像 ImmutableList() 这样的不可变对象。在多线程环境中使用此对象的首选方法是什么?
例如
public class MutableListOfObjects()
{
private volatile ImmutableList objList;
public class MutableListOfObjects()
{
objList = new ImmutableList();
}
void Add(object o)
{
// Adding a new object to a list will create a new list to ensure immutability of lists.
// Is declaring the object as volatile enough or do we want to
// use other threading concepts?
objList = objList.Add(o);
}
// Will objList always use that lest version of the list
bool Exist(object o)
{
return objList.Exist(o);
}
}
声明参考 volatile 是否足以实现所需的行为?还是最好使用其他线程函数?