![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
文章平均质量分 87
keep study
这个作者很懒,什么都没留下…
展开
-
先大框架,然后逐模块,逐Function
多年前的一个 IBM 的老鸟曾经教过我一个 5 分钟上手的思维习惯,当我听到以后,醍醐灌顶,惊人天人,一改日常的编码风格。到现在,它还持续保持在我的日常的编码习惯当中。 我不知道应该怎么称呼这种思维习惯的名字,top-down,自顶而下,或者分治?先大框架,然后逐模块,逐Function。不管怎么样,它的核心是非常清晰的:编码的时候只思考同一个思维层次的逻辑,在这层完成之后再思考下一层。 它基于这么一个事实:我们每个人智力是有限的,同一个时间只能思考有限内容的东西,我们都不是天才。由于这个事实的存在,所以程原创 2021-11-03 10:25:54 · 103 阅读 · 0 评论 -
linux下C语言实现多线程通信—环形缓冲区,可用于生产者(producer)/消费者(consumer)
一、概念引入 日常生活中,每当我们缺少某些生活用品时,我们都会去超市进行购买,那么,你有没有想过,你是以什么身份去的超市呢?相信大部分人都会说自己是消费者,确实如此,那么既然我们是消费者,又是谁替我们生产各种各样的商品呢?当然是超市的各大供货商,自然而然地也就成了我们的生产者。如此一来,生产者有了,消费者也有了,那么将二者联系起来的超市又该作何理解呢?诚然,它本身是作为一座交易场所而诞生。 将上述场景例比到我们实际的软件开发过程中,经常会见到这样一幕:代码的某个模块负责生产数据(供货商),而生产出来的数据却原创 2021-08-25 19:29:50 · 1396 阅读 · 0 评论 -
环形缓冲区
环形缓冲区 当有大量数据的时候,我们不能存储所有的数据,那么计算机处理数据的时候,只能先处理先来的,那么处理完后呢,就会把数据释放掉,再处理下一个。那么,已经处理的数据的内存就会被浪费掉。因为后来的数据只能往后排队,如过要将剩余的数据都往前移动一次,那么效率就会低下了,肯定不现实,所以,环形队列就出现了。 目的:避免频繁的内存创建取消、分配。内存一直只用了一块。 在发送线程使用的是普通队列。在发送任务处理的事件循环线程用的是环形队列。 即 一个环形缓冲区. 消息队列解决了 锁调用太频繁的问题,另一个让人原创 2021-08-25 19:05:26 · 1157 阅读 · 0 评论