当前位置:嗨网首页>书籍在线阅读

05-其他选择

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

7.2.2 其他选择

除了多线程外,还有一些其他选择,这取决于使用多线程的目的。比如,多线程带来的低延迟和高I/O吞吐也可以通过I/O多路复用(见2.10节),非阻塞I/O(见2.2.3小节)和异步I/O(见4.5.1小节)来实现。这些技术支持进程并发执行I/O操作,不会阻塞进程。如果目的是实现并发,和N个线程相比,N个进程也可以同样利用处理器资源,除了增加了资源消耗代价和上下文切换开销。相反,如果目的是减少内存使用,Linux提供了一些工具,比起多线程,它们可以以更严格的方式共享内存。

当前,系统编程人员发现替代方案都没有竞争力。比如,异步I/O往往让人很恼火。即使可以通过共享内存和其他共享资源的方式减少多进程之间的代价,上下文切换代价是少不了的。因此,线程在系统编程上很常见,而且几乎到处都是:从底层内核一直到高层GUI应用。由于多核变得越来越普遍,对多线程的使用只会变得更加普遍。