9.18日内容安排
1、先复习递归https://mp.weixin.qq.com/s/-V0jBkPoZHYC2jLfSnQ6-g
2、复习之前的总结
3、刷题
相关知识点:https://github.com/huihut/interview#effective
Linux 韩顺平
大华面试
电话面试
1、C++分配内存的方法
2、static
static的意思是静态的,可以用来修饰变量,函数和类成员。
变量:被static修饰的变量就是静态变量,它会在程序运行过程中一直存在,会被放在静态存储区。局部静态变量的作用域在函数体中,全局静态变量的作用域在这个文件里。
函数:被static修饰的函数就是静态函数,静态函数只能在本文件中使用,不能被其他文件调用,也不会和其他文件中的同名函数冲突。
类:而在类中,被static修饰的成员变量是类静态成员,这个静态成员会被类的多个对象共用。被static修饰的成员函数也属于静态成员,不是属于某个对象的,访问这个静态函数不需要引用对象名,而是通过引用类名来访问。
3、删除数组元素时间复杂度
4、删除链表元素时间复杂度
5、进程线程
6、线程同步
锁机制:包括互斥锁/量(mutex)、读写锁(reader-writer lock)、自旋锁(spin lock)、条件变量(condition)
互斥锁/量(mutex):提供了以排他方式防止数据结构被并发修改的方法。
读写锁(reader-writer lock):允许多个线程同时读共享数据,而对写操作是互斥的。
自旋锁(spin lock)与互斥锁类似,都是为了保护共享资源。互斥锁是当资源被占用,申请者进入睡眠状态;而自旋锁则循环检测保持者是否已经释放锁。
条件变量(condition):可以以原子的方式阻塞进程,直到某个特定条件为真为止。对条件的测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一起使用。
信号量机制(Semaphore)
无名线程信号量
命名线程信号量
信号机制(Signal):类似进程间的信号处理
屏障(barrier):屏障允许每个线程等待,直到所有的合作线程都达到某一点,然后从该点继续执行。
线程间的通信目的主要是用于线程同步,所以线程没有像进程通信中的用于数据交换的通信机制
7、多线程
8、项目、比赛