无法回避的软件本质复杂性_LINUX系统编程书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > LINUX系统编程 > 无法回避的软件本质复杂性
预流 LINUX系统编程 的书评 发表时间:2015-07-27 16:07:41

无法回避的软件本质复杂性

这书可当作Linux下C函数的一般查询手册吧。
对我来说最有价值的是第7章7.4节线程模式的讨论:
创建多线程应用的第一步也是最重要的一步就是确定线程模式,线程模式也是应用程序的逻辑处理和I/O的模式,可能存在很多抽象和实现细节,但两个核心的编程模式是:“每个连接对应一个线程”和“事件驱动”。

“每个连接对应一个线程”是一种编程模式,在该模式中,每个工作单元被分配给一个线程,而该线程在该工作单元执行期间,不会被分配给其他工作单元。工作单元是指如何分解应用的工作:请求、连接等。在这里,我们将“连接”作为描述该模式的通用术语。
描述该模式的另一种方式是“运行直到结束”。一个线程处理一个连接或请求,直到处理结束,这样线程就可以处理另一个新的请求。

之前在看Java写的Web容器的实现时总是纠结于请求、连接、线程这几个概念之间的关系,上面这两段对一种最简单的多线程处理请求的方式描述的已经足够清晰。

回想学Java时总是对文件操作的三种IO、多线程的API感到困惑,尤其是怪异的NIO文件读写方式,看过Linux系统实现之后就会明白所有这些实际是基于操作系统能够提供的原生调用的封装,是由“软件本质复杂性”决定他们只能提供这种并不怎么优雅的API出来,这算是初读系统编程的一点点小感想吧。

展开全文
有用 0 无用 0

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读