对象构造之线程安全

对象构造要做到线程安全,唯一的要求是在构造期间不要泄漏 this 指针,即

  • 不要在构造函数中注册任何回调;
  • 也不要在构造函数中把 this 传给跨线程的对象;
  • 即便在构造函数的最后一行也不行。

之所以这样规定,是因为在构造函数执行期间对象还没有完成初始化,如果 this 被泄漏(escape)给了其他对象(其自身创建的字对象除外),那么别的线程有可能访问这个半成品对象,这会造成难以预料的后果。

取自:第一章 线程安全的对象生命期管理 之 对象的创建很简单

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理