How HappyLock Works

主要观点:作者发布了 HappyLock 0.3 版本,解释了其改变及原理,重点在于通过强制总分配来防止死锁等问题,还探讨了未来工作方向。
关键信息:

  • 死锁发生的四个条件及应对方法,如互斥、非抢占式分配等。
  • 引入 ThreadKey 类型来限制对互斥锁的访问,防止死锁。
  • 实现 LockCollection 来同时锁定多个互斥锁,包括不同类型的 LockCollection 及其实现细节。
  • 讨论了活锁问题及如何避免,如按内存地址排序来锁定互斥锁。
  • 提到了对读写锁的支持及相关修改,如添加 Sharable trait 等。
  • 探讨了性能方面,如 ThreadKey 的零成本抽象、不同锁集合类型的性能特点等。
  • 未来工作包括添加中毒支持、使用操作系统锁、编译时重复检查、扩展循环等待、引入 LockCell 类型、只读锁集合等。
    重要细节:
  • 各种锁相关类型的定义及实现,如 Mutex、RwLock 等。
  • 不同锁集合类型的创建、使用及性能差异,如 RefLockCollection、BoxedLockCollection 等。
  • 对各种未来工作的具体设想和面临的困难,如使用操作系统锁的限制等。
阅读 11
0 条评论