C/C++学习资料推荐

语言学习

  • C程序设计语言( Dennis M. Ritchie 和Brian W. Kernighan)
  • C语言程序设计现代方法
  • C陷阱与缺陷
  • C++ Primer
    (这本书是久负盛名的 C++ 经典教程。书是有点厚,前面 1/3 讲 C 语言,后面讲 C++。C++ 的知识点实在是太多了,而且又有点晦涩。但是你主要就看几个点,一个是面向对象的多态,一个是模板和重载操作符,以及一些 STL 的东西。看看 C++ 是怎么玩泛型和函数式编程的)
  • Effective C++
  • More Effective C++
  • 深度探索C++对象模型
  • C++ FAQ (Bjarne Stroustrup )中文版
  • C++沉思录
  • Exceptional C++
  • More Exceptional C++
  • 泛型编程与STL

系统知识学习

  • 深入理解计算机系统
    本书的最大优点是为程序员描述计算机系统的实现细节,帮助其在大脑中构造一个层次型的计算机系统。从最底层的数据在内存中的表示到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户态应用。通过掌握程序是如何映射到系统上,以及程序是如何执行的,你能够更好地理解程序的行为为什么是这样的,以及效率低下是如何造成的。

  • Unix高级环境编程

  • Linux/Unix系统编程手册

  • Linux系统编程

  • Unix网络编程 第1卷套接口API、第2卷 进程间通信

  • TCP/IP详解 卷I协议
    三本书可能都不容易读,一方面是比较厚,另一方面是知识的密度太大了,所以,读起来有点枯燥和乏味。但是,这没办法,你得忍住。

如果你觉得上面这几本经典书比较难啃,你可以试试下面这些通俗易懂的(当然,如果读得懂上面那三本的,下面的这些也就不需要读了

  • Linux C编程一站式学习
  • TCP/IP网络编程
  • 图解 TCP/IP
  • The TCP/IP Guide
  • Wireshark数据包分析实战
  • C10K Problem https://www.oschina.net/translate/c10k
    C10K 问题本质上是操作系统处理大并发请求的问题。对于 Web 时代的操作系统而言,对于客户端过来的大量的并发请求,需要创建相应的服务进程或线程。这些进程或线程多了,导致数据拷贝频繁(缓存 I/O、内核将数据拷贝到用户进程空间、阻塞), 进程 / 线程上下文切换消耗大,从而导致资源被耗尽而崩溃。这就是 C10K 问题的本质。了解这个问题,并了解操作系统是如何通过多路复用的技术来解决这个问题的,有助于你了解各种 I/O 和异步模型,这对于你未来的编程和架构能力是相当重要的。

猜你喜欢

转载自blog.csdn.net/gaochubusheng/article/details/131713108