并发java:为什么不允许它转义构造函数?
在JCIP的第3.2.1节“安全构造函数实践”中,有一条警告,“即使发布是构造函数中的最后一条语句”,也不要将this
泄漏到构造函数的另一个线程这最后一部分对我来说似乎太强了,而且没有任何理由。施工后发生了什么我必须小心避免的事情?有例外吗?我很感兴趣,因为我最近提交了一些代码,在其中我做了这件事,我想决定是否有理由回去进行重构
你可以在下面搜索框中键入要查询的问题!
在JCIP的第3.2.1节“安全构造函数实践”中,有一条警告,“即使发布是构造函数中的最后一条语句”,也不要将this
泄漏到构造函数的另一个线程这最后一部分对我来说似乎太强了,而且没有任何理由。施工后发生了什么我必须小心避免的事情?有例外吗?我很感兴趣,因为我最近提交了一些代码,在其中我做了这件事,我想决定是否有理由回去进行重构
# 1 楼答案
在任何时候都不应该从构造函数中泄漏
this
,“甚至[…]在最后的声明中。“由于this
不是完全构造的,所以可能会发生一些非常奇怪的事情。关于一个非常类似的问题,请参见this SO answer。”