《Linux多线程服务端编程》读书笔记——第一章_线程安全的对象生命期管理

要编写线程安全的类,只需用同步原语保护内部状态即可。


如果一个对象能被多个线程同时看到,,那么对象的销毁时机会变得模糊不清,可能出现竞态条件(race condition):

  • 在即将析构函数一个对象时,从何而知此刻是否有别的线程正在执行该对象的成员函数?
  • 如何保证执行成员在函数期间,对象不会在另一个线程被析构?
  • 在调用某个对象的成员函数之前,如何得知这个对象还活着?它的析构函数会不会碰巧执行到一一半?

本文将试图使用share_ptr解决这些问题。

线程安全的类应该满足:
  • 多个线程同时访问,表现出正确的行为。
  • 无论操作系统如何调度这些函数,无论这些线程的执行顺序如何交织。
  • 调用端代码无需额外的同步或其它协调操作。
c++标准库的大多数class都不是线程安全的。

转载于:https://www.cnblogs.com/sdflyb/p/6602686.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值