1. 一个系统里面有多个线程, 其中一个线程想终止另外一个线程, 该怎么实现.
2. 为什么要用virtual destructor
3. 什么是heap corruption
4. Semaphore VS Mutex
5. C++中的static, 怎么用,内存在哪里分配,等等
6. sizeof一个指针和sizeof一个指针指向的空间有什么不同?
7. char* 和char[]有什么区别?
8. 操作系统的Page是怎么做的?
9. 什么是Thrashing
10. 什么是volatileu关键字? 在什么情况下需要使用?
11. 什么是critical section?
12. C++里面的dynamic_cast如何实现,为什么dynamic_cast要求被cast的指针指向的类
至少要有一个virtual method?
13. virtual inheritance 为什么能够避免导出类中有多于一个的virtual base class
的copy?
14. deadlock’s four condition
15. 关于C++ 处理异常的方法
16. static 变量最大的问题是什么(考虑多线程)?
17. state Machine 的几种实现方法, 各自的优缺点是什么
18. 多线程程序里,你最喜欢哪种同步操作? Mutex是大家用得最多的, 为什么?Mutex有什么不好? (overhead,serialize,deadlock), 给例子。如何避免这些坏处?(lock-free算法, 比如lock-free的queue,stack,hashtable)一般用什么办法来写lock-free算法?(用CAS等原子操作,等等), 如何实现一个lock-free的queue? (coding ?)
19. strlen(“hello”)=? , sizeof(“hello”)=?
20. 如果main函数只有如下结构
int main(…)
{
Try{…}
catch(){…}
}
并且这个catch语句catch了所有的exception,但是这个程序还是coredump了,问可能是什么问题引起的。
21. singleton, 多线程, 如何做double check?
22. Command Pattern
23. 同步/异步IO和阻塞/非阻塞IO的区别?
24. 写一个thread safe lazy initialization 的singleton
25. Map Reduce和Multi-thread的trade-off