知识点
alfredzhu1116
这个作者很懒,什么都没留下…
展开
-
C++基础知识
1. 在构造函数当中一部分是初始化列表一部分是在花括弧里面,你能说一下这些的顺序是什么么?差别是什么 和this指针的顺序构造函数会首先根据初始化列表中的值初始化对应的成员变量,当某个成员变量被初始化列表忽略时,会对其进行默认初始化。执行完这个过程之后才会执行花括弧中的构造函数体。花括弧中的构造函数体执行的都是赋值操作,而不是初始化操作。初始化和赋值的区别事关底层效率问题:前者直接初始化数据成...原创 2019-10-31 09:49:39 · 767 阅读 · 1 评论 -
C/C++内存及指针问题
一.野指针1.概念:野指针指向了一块随机内存空间,不受程序控制。如指针指向已经被删除的对象或者指向一块没有访问权限的内存空间,之后如果对其再解引用的话,就会出现问题。2.产生的原因:1)指针定义时未被初始化:指针在被定义的时候,如果程序不对其进行初始化的话,它会指向随机区域,因为任何指针变量(除了static修饰的指针变量)在被定义的时候是不会被置空的,它的默认值是随机的。2)指针被释放...原创 2019-10-17 16:50:26 · 145 阅读 · 0 评论 -
nginx相关基础知识
1.“惊群”问题及其解决方案“惊群”问题:在建立连接的时候,Nginx处于充分发挥多核CPU架构性能的考虑,使用了多个worker子进程监听相同端口的设计,这样多个子进程在accept建立新连接时会有争抢,这会带来“惊群”问题,子进程数量越多越明显,这会造成系统性能的下降。一般情况下,有多少CPU核心就有配置多少个worker子进程。假设现在没有用户连入服务器,某一时刻恰好所有的子进程都休眠...原创 2019-10-13 21:14:53 · 142 阅读 · 0 评论 -
动态链接相关
一.为什么要动态链接二.装载时重定位对于需要进行动态链接的共享对象,共享对象中的绝对地址在链接的时候不进行重定位,而是在装载运行的时候进行重定位。由于需要动态链接的共享对象被装载映射至虚拟空间之后,指令部分是在多个进程之间共享的,由于装载时重定位的方法需要修改指令,所以没有办法做到同一份指令被多个进程共享,因为指令在被重定位之后对于每个进程来说是不同的。三.地址无关代码(PIC)上述装载...原创 2019-09-27 23:04:28 · 120 阅读 · 0 评论 -
c++ 11新特性
1.右值引用2.move3.智能指针原创 2019-09-12 13:12:52 · 70 阅读 · 0 评论 -
linux网络编程基础知识
一.基本的几个函数1.socket()2.connectint connect(int sockfd,const struct sockaddr* servaddr,socklen_t addrlen);参数:sock是socket返回的套接字描述符,第二个和第三个参数是服务器的套接字地址结构的指针和该结构的大小。作用:tcp客户端通过connect函数建立与tcp服务器的连接,调用co...原创 2019-09-08 14:03:21 · 212 阅读 · 0 评论 -
C++11新特性之十:enable_shared_from_this
https://blog.csdn.net/caoshangpa/article/details/79392878原创 2019-08-12 21:27:50 · 91 阅读 · 0 评论 -
makefile
Makefile中的%标记和系统通配符*的区别https://www.cnblogs.com/warren-wong/p/3979270.html原创 2019-08-11 10:24:13 · 71 阅读 · 0 评论 -
redis知识点
redis知识点一.AOF持久化和RDB持久化1.为什么需要进行持久化操作因为redis是内存数据库,它将自己的数据库状态存储在内存中,所以如果不想办法将数据库状态保存在磁盘中,那么一旦服务器进程退出,数据库状态也会消失不见,所以redis提供了两种持久化方法将数据库状态保存在磁盘中。2.RDB持久化和AOF持久化的概念和对比RDB持久化是在某个时间点将数据写入一个RDB文件,保存的是数...原创 2019-06-29 09:48:13 · 87 阅读 · 0 评论 -
Linux 内存管理
Linux 内存管理1.虚拟内存管理总览Linux操作系统采用虚拟内存管理技术,使得每个进程都有各自互不干涉的进程地址空间。该空间是块大小为4G的线性虚拟空间(表现形式为mm_struct中的vma_area_struct),用户所看到和接触到的都是该虚拟地址,无法看到实际的物理内存地址。利用这种虚拟地址不但能起到保护操作系统的效果(用户不能直接访问物理内存),而且更重要的是,用户程序可使用...原创 2019-07-10 16:12:22 · 113 阅读 · 0 评论 -
linux虚拟文件系统
引入虚拟文件系统的原因Linux系统中存在很多的文件系统,例如常见的ext2,ext3,ext4,sysfs,rootfs,proc…很多很多。。。我们知道每个文件系统是独立的,有自己的组织方法,操作方法。那么对于用户来说,不可能所有的文件系统都了解,用户怎么能透明使用它们呢?那么这个时候就需要VFS作为中间一层!用户直接和VFS打交道。例如read,write,那么映射到VFS中就是sys_r...原创 2019-07-14 21:27:44 · 155 阅读 · 0 评论 -
异或的用处(转载)
https://blog.csdn.net/wwt18811707971/article/details/78291490转载 2019-07-29 14:52:15 · 196 阅读 · 0 评论 -
nginx知识点
一.nginx启动的流程1.解析命令行,处理各种参数,获得配置文件路径2.3.调用每个核心模块的create_conf方法,每个核心模块都会构造一个存储配置项的指针数组,4.解析配置文件5.调用所有核心模块的init_conf方法6.二.惊群事件及解决方法定义:master进程会fork多个worker子进程,这些worker子进程就会同时监听同一个web端口。这时当有一个用户向服...原创 2019-07-17 22:04:08 · 92 阅读 · 0 评论 -
C++ 并发编程,std::unique_lock与std::lock_guard 等各种stl里面的东西
std::mutexmutex 类是能用于保护共享数据免受从多个线程同时访问的同步原语。mutex 提供排他性非递归所有权语义。操作:1.lock:如果 mutex 未上锁,则将其上锁。否则如果已经其它线程 lock,则阻塞当前线程2.try_lock:如果 mutex 未上锁,则将其上锁。否则返回 false,并不阻塞当前线程3.unlock:如果 mutex 被当前线程锁住,则将其解...原创 2019-08-01 10:59:17 · 338 阅读 · 0 评论 -
i&i-1的作用
先来看一个函数#include <stdio.h>int fun(int i) { int cnt = 0; while(i) { cnt++; i = i&(i-1); } return cnt; } int main(){ printf( "%d\n",...原创 2019-08-06 19:18:03 · 2311 阅读 · 0 评论 -
C++中两个类中互相包含对方对象的指针问题
https://www.cnblogs.com/hanxi/archive/2012/07/25/2608068.htmlhttps://zhidao.baidu.com/question/1640222771443578660.html原创 2019-08-10 21:51:58 · 1118 阅读 · 0 评论 -
看过的一些博客
看过的一些博客非阻塞socket中read、write返回值[link](https://www.cnblogs.com/runnyu/p/5054968.html).原创 2019-07-01 21:20:06 · 99 阅读 · 0 评论