假设我有多个线程,每个线程都试图创建同一类的对象。
不同线程同时创建同类型的对象会不会互相干扰?
我需要在构造函数中使用“锁”吗?
这在很大程度上取决于构造函数的实现。
如果构造函数仅访问该类的成员,而不访问任何外部静态类或方法,那么是的 - 它是线程安全的。
但是,如果该构造函数正在访问存在于类本身之外的非线程安全对象(例如全局单例),那么它就不是线程安全的。
更新:构造函数应注意不要访问类中非只读或常量的任何静态成员。 (感谢 Nathan A 和 LVBen)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)