Kon*_*che 2 java constructor thread-safety
出于线程安全的原因,有人认为:
在施工期间不要让此参考物逃逸.
但这总是一个问题,应该通过使用newInstance()方法来避免吗?在我的模型类中,我有一个TableModel,它应该在模型类中实例化,但是它还需要对模型类的引用:
public class MainModel {
TableModel tableMode;
public MainModel() {
tableModel = new MyTableModel(this);
}
}
Run Code Online (Sandbox Code Playgroud)
如果构造函数不立即使用它是安全还是应该以任何方式避免?
如果MyTableModel在其他线程中没有任何东西可以做任何事情 - 或者将变量复制到其他一些共享数据(例如静态变量)那么它是安全的.
当然,如果在其构造函数中MyTableModel开始调用MainModel引用上的方法,那么它将在一个未完全初始化的对象上调用它们,这可能会导致问题 - 但这并不是真正的线程相关.
我刚才在博客上写了一些内容.
| 归档时间: |
|
| 查看次数: |
440 次 |
| 最近记录: |