摘要: 1.9 再论shared_ptr 的线程安全 虽然我们借shared_ptr 来实现线程安全的对象释放,但是shared_ptr 本身不是100% 线程安全的。它的引用计数本身是安全且无锁的,但对象的读写则不是,因为shared_ptr 有两个数据成员,读写操作不能原子化。根据文档11,shared 阅读全文
posted @ 2019-10-08 20:21 一日一更 阅读(5769) 评论(0) 推荐(0) 编辑
摘要: 一、智能指针shared_ptr 智能指针主要有三种:shared_ptr,unique_ptr和weak_ptr。 shared_ptr shared_ptr是最常用的智能指针(项目中我只用过shared_ptr)。shared_ptr采用了引用计数器,多个shared_ptr中的T *ptr指向 阅读全文
posted @ 2019-10-08 20:03 一日一更 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解 阅读全文
posted @ 2019-10-07 19:38 一日一更 阅读(1809) 评论(0) 推荐(0) 编辑
摘要: 调试器GDB的基本使用方法 GDB调试的三种方式: 1. 目标板直接使用GDB进行调试。 2. 目标板使用gdbserver,主机使用xxx-linux-gdb作为客户端。 3. 目标板使用ulimit -c unlimited,生成core文件;然后主机使用xxx-linux-gdb ./test 阅读全文
posted @ 2019-10-07 19:25 一日一更 阅读(5365) 评论(0) 推荐(0) 编辑
摘要: 数据库事务的四大特性: 事务(Transaction)是并发控制的基本单位。所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行。 1、数据库事务必须具备ACID特性,ACI 阅读全文
posted @ 2019-10-07 18:55 一日一更 阅读(1772) 评论(0) 推荐(0) 编辑
摘要: 滑动窗口协议(Sliding Window Protocol),属于TCP协议的一种应用,用于网络数据传输时的流量控制,以避免拥塞的发生。该协议允许发送方在停止并等待确认前发送多个数据分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输,提高网络吞吐量。 TCP通过滑动窗口 阅读全文
posted @ 2019-10-06 22:19 一日一更 阅读(1557) 评论(0) 推荐(0) 编辑
摘要: 按字节(Byte)拷贝实现的memcpy 在上面按字节拷贝中考虑了拷贝覆盖,连续的一段空间存放数据是从低地址到高地址进行存放。先从源地址读出数据,然后写入到目的地址空间中。目的空间的起始地址如果在源数据空间之内就会出现内存覆盖的情况。 这种情况先从尾部拷贝,避免覆盖数据,不过这种情况也会破坏src空 阅读全文
posted @ 2019-10-06 22:10 一日一更 阅读(1749) 评论(2) 推荐(0) 编辑
摘要: extern的问题在于你不知道这个关键字出现的时候到底是声明还是定义。 谨记:声明可以多次,但是定义只能有一次。 函数的声明extern关键字是可有可无的,因为函数本身不加修饰的话就是extern的。 下面分变量和函数来说明: (1) 变量 extern int a; //声明一个全局变量 int 阅读全文
posted @ 2019-10-06 20:06 一日一更 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 下面这篇文章讲的很好。 http://www.cnblogs.com/lihaosky/articles/1606502.html 假设我们有这样的一个类: class Base { public: virtual void f() { cout << "Base::f" <<> virtual v 阅读全文
posted @ 2019-10-06 19:50 一日一更 阅读(1475) 评论(0) 推荐(0) 编辑
摘要: 封装可以使得代码模块化,继承可以扩展已存在的代码,他们的目的都是为了代码重用。而多态的目的则是为了接口重用 封装:封装是在设计类的一个基本原理,是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与对数据进行的操作进行有机的结合,形成“类”,其中数据和函数都是类的成员。 继承: 阅读全文
posted @ 2019-10-06 19:49 一日一更 阅读(791) 评论(0) 推荐(0) 编辑