假设我有多个线程,并且每个线程都在尝试创建同一类的对象。
在不同线程中同时创建相同类型的对象会相互干扰吗?我是否需要在构造函数中使用“锁定”?
这在很大程度上取决于构造函数的实现。
如果构造函数仅访问该类的成员,而不访问任何外部静态类或方法,则可以-它是线程安全的。
但是,如果该构造函数正在访问类本身之外的非线程安全对象(例如全局单例),则它不是线程安全的。
更新:构造函数应注意不要访问类的任何非只读或const静态成员。(感谢Nathan A和LVBen)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句