摘要: 野指针和悬空指针: 野指针:未被初始化的指针; 悬空指针:指针正常初始化,曾指向一个正常的对象,后被释放,该指针被销毁后,该指针未置空. 栈空间的默认大小只有几M的空间. 阅读全文
posted @ 2020-05-06 19:31 GoingNow 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 空类型不包含任何信息,按理来说它的sizeof应该是0。但是,要考虑的是当我们声明该类型的实例的时候,它必须在内存中占有一定的空间,否则它就是不存在的而无法使用这些实例。因此,具体在内存中占用的空间大小是多少由编译器确定,在vs中一个空类型的实例占用1字节的空间. 列表初始化与类内对象变量的声明顺序 阅读全文
posted @ 2020-04-23 16:45 GoingNow 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 1 viod quick_sort(int s[],int l,int r) 2 { 3 if(l<r) 4 { 5 int i = l,j = r,temp=s[l]; 6 while(i<j&&s[j]<temp)//右-左 第一个小于标记值 7 { 8 j--; 9 } 10 if(i<j) 阅读全文
posted @ 2020-04-23 16:31 GoingNow 阅读(104) 评论(0) 推荐(0) 编辑
摘要: Member functions (constructor)Construct unique_lock (public member function )(destructor)Destroy unique_lock (public member function ) Locking/unlocki 阅读全文
posted @ 2020-04-02 19:52 GoingNow 阅读(585) 评论(0) 推荐(0) 编辑
摘要: lock_guard:这个对象仅有构造函数和析构函数。没有其他成员函数。 1 // lock_guard example 2 #include <iostream> // std::cout 3 #include <thread> // std::thread 4 #include <mutex> 阅读全文
posted @ 2020-04-02 19:13 GoingNow 阅读(1060) 评论(0) 推荐(0) 编辑
摘要: 1.final修饰符 a)修饰类,该类不能别继承. b)修饰成员函数,该函数不能被重写. c)修饰变量,该变量只能被赋值一次 2.类中只有private的构造方法 子类的构造函数一定要调用父类的构造函数,当父类只有private构造方法时候,那么子类就无法调用父类的构造方法. 阅读全文
posted @ 2020-01-15 09:59 GoingNow 阅读(1502) 评论(0) 推荐(0) 编辑
摘要: 多线程和多进程区别:1.进程之间数据分开,进程间通信需要特殊的ipc机制(管道,信号量,共享内存,消息队列),线程存在于进程内,线程之间共享进程的堆区间,全局静态存储区,而各自拥有自己独立的栈空间,同步数据用互斥量2.进程的创建,销毁,切换复杂,速度慢,线程是轻量级进程。3.进程占用内存多,cpu利 阅读全文
posted @ 2020-01-10 17:00 GoingNow 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 五种通讯方式 1.管道:速度慢,容量有限,只有父子进程能通讯 在内核中申请一块固定大小的缓冲区,程序有写入和读取的权利,一般使用fork函数实现父子进程的通信. int pipe(int fd[2])fd[1]写入数据,fd[0]读出数据,默认情况,这对描述符都是阻塞. 2.FIFO:任何进程间都能 阅读全文
posted @ 2020-01-10 16:58 GoingNow 阅读(125) 评论(0) 推荐(0) 编辑
摘要: I/O复用使得程序可以同时监听多个文件描述符,可以提高程序的性能. I/O复用虽然能同时监听多个文件描述符,但是它本身是阻塞。并且当多个文件描述符同时就绪时,如果不采取额外的措施,程序只能按顺序依次处理每一个描述符。使得服务器程序是串行工作。如果要实现并发,只能使用多进程或者多线程等手段. sele 阅读全文
posted @ 2020-01-10 14:06 GoingNow 阅读(115) 评论(0) 推荐(0) 编辑