muduo学习之线程

知识点来源于陈硕的《Linux多线程服务端编程》以及一些博客。

竞态条件(race condition)

  • 在即将析构一个对象时,如何得知是否有别的线程正在使用该对象的成员函数?
  • 如何保证在执行对象的成员函数时,该对象不会在别的线程被析构?
  • 在调用某个对象的成员函数时,如何判断该对象存活?

线程安全

一个线程安全的class应该满足以下三个条件

  • 多个线程同时访问时,其表现出正确的行为。
  • 无论操作系统如何调度这些线程,无论这些线程的执行顺序如何交织(interleaving)。
  • 调用端代码无需额外的同步或其他协调操作

对象构造做到线程安全

唯一要求:构造期间不要泄露this指针

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

封装MutexLock、MutexLockGuard、Condition

全部评论

相关推荐

03-26 13:04
已编辑
电子科技大学 算法工程师
xiaowl:你这个简历“条目上”都比较有深度性,但是实际上面试官又没法很好的评估你是怎么达到很多看上去很厉害的结果的。要避免一些看上去很厉害的包装,比如高效的内存复用策略的表达,如果仅是简单的一些内存共享机制,而且面试上也没有深挖的空间,就不要这样表达。比如,工程化模式本质上可能就是定义了一些abstract class,那也就没特别多值得讲的内容。建议简历上应该侧重那些你花了大量时间和精力解决、研究的问题,不要过分追求“丰富”,而是关注在技术深入度、问题解决能力的表现上。
没有实习经历,还有机会进...
点赞 评论 收藏
分享
Rac000n:淘天-客户运营部-AI研发工程师,智能客服方向,暑期实习招聘,欢迎联系
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务