07 2021 档案

摘要:管程管程的特点管程分类管程的实现条件变量条件变量的一种实现管程实现代码同步队列代码参考资料toc 管程 管程可以视为一个线程安全的数据结构,其内部提供了互斥与同步操作,向外提供访问共享数据的专用接口(接口被称为管程的过程),通过管程提供的接口即可达成共享数据的保护与线程间同步。 使用管程,可以简化线 阅读全文
posted @ 2021-07-27 06:37 無雙 阅读(1388) 评论(0) 推荐(1)
摘要:雪花算法介绍带时间回退处理实现一带时间回退处理实现二steady_clock介绍处理时间回退toc 雪花算法介绍 雪花算法是Twitter开源的唯一ID生成算法。ID的有效部分有三个: 41位时间戳部分:此部分是雪花算法的关键部分,因为时间是唯一且单调递增的,以时间作为关键部分,理论上ID便不会重复 阅读全文
posted @ 2021-07-17 22:54 無雙 阅读(2196) 评论(0) 推荐(0)
摘要:背景实现代码条件变量与锁条件变量定时等待的坑Linux + g++7.5WIndows + VS2017坑的处理toc 背景 信号量与条件变量差异对比 信号量存在一个计数,可以反映出当前阻塞在wait上的线程数(值小于0),或下次wait不会阻塞的线程数;条件变量没有相应计数 信号量仅能递增或递减计 阅读全文
posted @ 2021-07-06 22:45 無雙 阅读(1539) 评论(0) 推荐(0)
摘要:背景代码优化内存序扩展连接toc 背景 互斥锁(mutex): 加锁失败的线程会被阻塞,阻塞的线程不耗费CPU资源 导致模式切换,使用互斥锁加锁会进入内核态,阻塞时还会引发调度,运行时重新进入用户态 自旋锁(spin lock): 使用了忙等待,加锁失败的线程会一直重复尝试加锁,耗费CPU资源 使用 阅读全文
posted @ 2021-07-01 22:41 無雙 阅读(1263) 评论(0) 推荐(0)