假设我有以下代码:
final Catalog catalog = createCatalog();
for (int i = 0; i< 100; i++{
new Thread(new CatalogWorker(catalog)).start();
}
“Catalog”是一个对象结构,createCatalog() 方法和“Catalog”对象结构在编写时并没有考虑到并发性。产品目录中有几个非最终的、非易失的引用,甚至可能存在可变状态(但这必须处理)
我理解内存模型的方式,这段代码不是线程安全的。有什么简单的方法可以让它安全吗?(这个问题的广义版本实际上是关于在线程爆炸开始之前创建的共享结构的单线程构造)