- 博客(5)
- 收藏
- 关注
原创 写时拷贝
一、在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后大多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。 传统的fork()系统调用直接把所有的资源复制给新创建的进程。这种实现过于简单并且效率低下,因为它拷贝的数据也许并不共享,或者,如果...
2018-09-24 23:54:43 229
原创 堆栈区别
1、管理方式不同; 栈由编译器自动分配和释放,而堆需要程序员来手动分配和释放,若忘记delete,容易产生内存泄漏。 2、空间大小不同; 栈的内存空间是连续的,空间大小通常是系统预先规定好的,即由栈顶地址和最大空间是确定的; 而堆得内存空间是不连续的,由一个记录空闲空间的链表负责管理,因此内存空间几乎没有限制, 在32位系统下,内存空间大小可达到4G 3、能否产生碎片不同; 由于栈的内存空间是...
2018-09-24 10:12:35 930
转载 vector
转自:https://www.cnblogs.com/zhonghuasong/p/5975979.html 介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。 本质讲,vector使用动态分...
2018-09-12 00:24:24 171
转载 reactor和proactor模式
转自:https://blog.csdn.net/caiwenfeng_for_23/article/details/8458299 Reactor模式,或者叫反应器模式 高性能IO设计的Reactor和Proactor模式 首先就第一篇《Reactor模式,或者叫反应器模式》做一下笔记: 刚开店做生意,老板为了给顾客一个美好的印象,给顾客最好的服务,一对一: 随着经...
2018-09-04 21:47:37 161
原创 阻塞、非阻塞、同步、异步
一、阻塞、非阻塞:阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态. eg1、应用进程请求I/O操作时,如果要访问的数据未准备好,请求立即返回就是非阻塞,不立即返回就是阻塞。 简单说就是做一件事如果不能立即获得返回,需要等待,就是阻塞,否则就可以理解为非阻塞。 eg2、 阻塞调用:比如 socket 的 recv(),调用这个函数的线程如果没有数据返回,它会一直阻塞着,也就是...
2018-09-04 21:25:10 125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人