摘要: 系统调用(system call),是操作系统内核提供给用户空间的应用程序,用于和内核空间交互,请求更高权限服务的接口。 1)fork:创建子进程。 2)文件系统操作:open(打开文件),read(读文件),write(写文件)。 3)进程间通信:pipe(创建管道),msgget(获取消息队列) 阅读全文
posted @ 2020-03-16 23:46 happyyoung 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1、如果构造函数是虚函数,则它需要通过类的虚表来调用,而虚表的指针保存在对象中,没有调用构造函数,就没有对象。 阅读全文
posted @ 2020-03-16 20:26 happyyoung 阅读(1243) 评论(0) 推荐(2) 编辑
摘要: 迭代器,通常指的是STL中容器的指针封装,用于指向容器中的元素。 1、序列容器 1)内存连续,如vector。 删除(erase)一个元素,会导致其后面的元素都向前移动,则对应的迭代器都会失效。 尾部添加(push_back)一个元素,如果引起内存重新分配,则迭代器全部失效。 2)内存不连续,如li 阅读全文
posted @ 2020-03-16 19:17 happyyoung 阅读(174) 评论(0) 推荐(0) 编辑
摘要: fork函数,是一个系统调用,用于从父进程创建子进程。调用一次,返回两次。父进程返回子进程的进程id,子进程返回0。子进程复制了父进程的进程地址空间。 #include <cstdio> #include <unistd.h> int main() { for (int i = 0; i < 2; 阅读全文
posted @ 2020-03-16 18:12 happyyoung 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 1、计数器算法 限制单位时间内(例如一秒)处理的请求数,比如qps。在每个单位时间的起点,请求从1开始计数,超过限制的请求会被丢弃。这种算法的缺点是,对于请求分布不均匀的情况,容易产生突刺,对服务造成很大压力。 2、漏桶算法 可以消除突刺。用一定容量的队列(即漏桶),缓存请求,超过容量的请求被丢弃; 阅读全文
posted @ 2020-03-16 17:41 happyyoung 阅读(162) 评论(0) 推荐(0) 编辑