muduo学习之线程

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

竞态条件(race condition)

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

线程安全

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

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

对象构造做到线程安全

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

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

封装MutexLock、MutexLockGuard、Condition

全部评论

相关推荐

06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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