Loading

上一页 1 2 3 4 5 6 ··· 14 下一页
摘要: 一、临界区与竞争条件 临界区就是访问和操作共享数据的代码段。 如果两个执行线程有可能处于同一临界区中同时执行,那么我们就称它们为竞争条件(race conditions) 避免并发和防止竞争条件称为同步(synchronization) 二、加锁 2.1 锁的介绍 我们需要一种方法确保一次有且只有一 阅读全文
posted @ 2020-02-08 16:37 三只猫- 阅读(221) 评论(0) 推荐(0) 编辑
摘要: ![](https://img2018.cnblogs.com/blog/1755696/202001/1755696-20200113085355965-1320862906.png) 阅读全文
posted @ 2020-02-08 16:14 三只猫- 阅读(154) 评论(0) 推荐(0) 编辑
摘要: [toc] 容器rb_tree Red Black tree(红黑树)是平衡二叉搜索树(balanaced binary search tree)中常被使用的一种。平衡二叉搜索树的特征:排列规则有利于search和insert,并保持适度平衡——无任何节点过深。 rb_tree提供遍历操作及iter 阅读全文
posted @ 2020-02-08 16:07 三只猫- 阅读(237) 评论(0) 推荐(0) 编辑
摘要: [toc] 容器结构分类 这里的衍生,并非继承关系,而是一种包含关系。 例如heap中包含一个vector。 通过萃取机traits萃取迭代器的型别 容器list list在要内存时,不光需要一个指针,还需要指向前后的两个指针。 list的定义 list的node定义 G2.9编译器的设计是如下所示 阅读全文
posted @ 2020-02-01 13:43 三只猫- 阅读(288) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-01-30 09:50 三只猫- 阅读(11) 评论(0) 推荐(0) 编辑
摘要: [toc] VC6编译器的实现 std::allocator实现如下: VC6的allocator只是以::operator new和::operator delete完成allocate()和deallocate(),没有任何特殊设计。以元素为单位,而后面有个编译器的实现是以字节为单位的。 BC5 阅读全文
posted @ 2020-01-27 08:39 三只猫- 阅读(216) 评论(0) 推荐(0) 编辑
摘要: [toc] 主要讲述C++的内存分配的四步,即四个进化过程,不断封装的过程。 从定义一个指针next,构建简单的单向链表;到使用union共同体,即将一个东西的前四个字节作为指针来使用(嵌入式指针);到将内存分配与回收封装成allocator类,该类中包含两个成员函数allocate和dealloc 阅读全文
posted @ 2020-01-15 10:08 三只猫- 阅读(340) 评论(0) 推荐(0) 编辑
摘要: [toc] C++内存管理的架构 C++ memory primitives memory primitives 测试 new在编译器中的执行过程 被编译器解释成以下代码:并且只有编译器才能做到如下所示的执行过程: delete在编译器中的执行过程 被编译器解释成以下代码:并且只有编译器才能做到如下 阅读全文
posted @ 2020-01-13 10:15 三只猫- 阅读(230) 评论(0) 推荐(0) 编辑
摘要: [toc] 1. 磁盘分区 2. 制作系统启动盘 3. 进入主板(Win+R),是否UEI 4. 按F9查看是否GPT格式 5. 进入BIOS关闭安全模式,改变系统启动项 6. 安装ubuntu16.04 7. 安装搜狗(换源加快安装速度) 8. 出现双系统切换问题 9. 无法查看驱动版本号(是不是 阅读全文
posted @ 2020-01-11 09:42 三只猫- 阅读(272) 评论(0) 推荐(0) 编辑
摘要: [toc] 不同标准库容器的iterator Array是连续空间,可以连续移动,类似指针。 所以其迭代器是random_access_iterator_tag. vector也是连续空间,所以其迭代器也是random_access_iterator_tag. Deque虽然是假的连续空间,但是其迭 阅读全文
posted @ 2020-01-10 17:56 三只猫- 阅读(267) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 ··· 14 下一页