性能组件
文章平均质量分 88
zhcblog
从事云计算分布式存储相关工作
展开
-
无锁队列ringbuff实现以及性能
以上场景对于有锁队列和无锁队列都可以使用的,但还如果对性能要求比较高,比如需要达到上万ops,就可以考虑优先使用无锁队列。相反如果性能达不到这么高使用有锁队列和无锁队列性能差别并不大,但是有锁队列实现会更加简单。以同样的数据结构(环形队列)实现一个有锁的队列,进行对比测试,两者的区别就在于一个加锁一个无锁,消费者在取出数据后会进行1000 次 empty loop。系统:Debian x86_64虚拟机,4核4G。本文采用的是循环队列的实现方式。原创 2023-06-29 16:48:13 · 468 阅读 · 0 评论 -
无锁数据结构 ---- 栈实现
无锁数据结构,即不使用任何锁机制实现可以多线程并发访问的数据结构。相比较有锁数据结构有如下优缺点:实现无锁数据结构,最好不要一开始就直接想着去如何实现无锁数据结构,因为这样能难考虑全面,可以以最简单的单线程栈开始,然后慢慢修改成无锁栈,下面以最简单的单线栈开始。原创 2023-06-21 17:41:48 · 1284 阅读 · 0 评论 -
线程池原理(C和C++实现)
当并发数很多的时候,并且每个线程执行时间很短的任务,这样就会频繁创建线程,而这样的频繁创建和销毁线程会大大降低系统的执行效率。对于这种场景我们可以使用线程池来复用之前创建的线程,降低线程的频繁创建和销毁工作,达到提高执行效率的目的。原创 2023-05-24 23:00:50 · 1043 阅读 · 0 评论