- 博客(3)
- 资源 (4)
- 收藏
- 关注
原创 C++ 堆排序
01 思路以从小到大排列为例。代码用到以下几个模块swap模块完成一个数组中的两个位置的元素交换heapify模块完成将一个子树构建为根节点最大的形式。如果根节点不是最大值,那么交换后将对传入最大位置的序号进行递归。build_heap模块从倒数第二层开始反向依次调用heepify模块,直到0节点。sort模块首先调用build_heap建堆,再从最后一...
2019-08-20 16:31:22 325
原创 C++ 生产者消费者模式的简单实现
01 模式简介生产者消费者模式可以理解为在生产者和消费者之间添加一个缓冲区,生产者只负责向缓冲区添加元素,而消费者只负责从缓冲区提取元素并使用。这么做可以对生产者与消费者进行解耦,这样一来消费者不直接调用生产者,使得生产者的不会因为生产者的具体处理而阻塞,充分利用资源。02 思路介绍代码中的具体元素为Stone类,生产者线程负责向缓冲类Busket中添加具体元素,而消费者线程则在缓冲类中的...
2019-08-20 11:47:03 4424
原创 C++中 atomic和mutex的效率
01 引由于“哪怕是对一个bool型变量的赋值和读取都不保证原子性“,所以在并发环境下,操作可能产生Data Race的变量需要认为的加以保护。常用的措施用互斥量mutex的包裹的临界区。利用atomic方式,赋予其原子性。那么这两种措施效率如何呢?02 比对结果mutex互斥量time: 1.76376e+065000000atomic形式time: 3082...
2019-08-16 10:29:37 2464
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人