前些天, 我和公司的一位同事在聊天, 谈到了技术上的东东.
他是做LINUX内核方面的,
而我是做WINDOWS服务器方面的.
他问: 你工作多长了?
我回: 4年多.
他说:
那么短.
我说: 还短吗? 觉得挺长的.
沉默了一会.
我问: LINUX下, epoll是怎样用的?
怎样实现采用多线程的方式的?
他回: 采用线程池啊
我说: WINDOWS下, IOCP说是跟epoll差不多,
IOCP直接跟外部的线程进行绑定的, 有消息处理的时候, 线程就会在函数中返回.
他说: epoll跟线程没关系的,
它只是一个select模型的进阶版本, 什么东西都是自己判断自己写的.
我说: 那你的意思是指所有SOCKET对应的accpet, close,
recv, send都是自己检测了?
他回: 是的.
我说: 那你认为怎样写一个服务器会是比较高效率的.
他回:
视实际需要情况.
我说: 服务器其实只做三件事: 接收数据, 处理数据, 回复数据. 没有实际需要也照样的, 采用服务器群组也好, 不采用也好,
只要每个服务器都是高效的, 自然组建起群组来说也不会太低效率, 除非群组架构出问题.
他回:
你这样问也很难回答到你的问题啊.
我说: 那么采用流水线的方式的话, LINUX下怎样实现一个线程写, 一个线程读, 而且较高效率的一个列表.
他回: 你这样问我也回答不出你的问题, 具体怎样写, 是不是采用列表, 都是视实际需求而定的...(后面一大堆理由)
我说:
什么实际需求不需求的, 现在就是要求这样的一个功能而已.
他回: 你说出具体需求我就会设计,
不说出具体需求我就不会设计了.
我无语.......
非常明显的. 他没写过服务器. 然而更让我得知一点: LINUX内核的编写,
只是挂个名. 有什么可能内核的编写不需要考虑线程的安全和抽象, 有什么可能内核的编写不需要考虑各种高效的数据处理模型.
像原子锁, 异步读写,
并发读写, 这类网上评论N多的线程安全模型, 居然还需要实际需求才能够设计.
然而, 这些不是我最感慨的地方. 最让我感慨的地方是: 中国,
实在太多所谓的资深技术人员连什么叫功能, 什么叫业务都不能够明确划分, 总是喜欢把什么东西都混在一起. 弄得功能和业务紧密偶合起来. 而最可悲的是:
懂得的人总是要做善后工作.而最痛苦的是: 因为这个工龄的问题, 有技术得到的工资, 还是比没技术的人低...
我已经工作过四家公司, 有两家公司,
是存在架构的, 但架构较差, 都存在一个单元有几万行代码. 有一家公司, 是完全没架构的, 每个业务单元都存在几千行代码. 而现在这家, 业务较为单一,
只是业务逻辑较为复杂, 功能最初有划分, 现在的就把业务不多不少都偶合在功能里面了.
中国, 现在还是处于那种只要做得到, 不要做得好,
只要可以用, 就不会创造新的阶段, 所以才导致中小型软件公司不论发展多少年, 还是中小型. 唉, 中国,
什么时候才会可以领着世界走在软件技术的前端...
|
相关推荐
根据应用的需要,《C#网络编程技术教程》在内容安排上对C#基础知识进行了合理取舍,重点突出网络编程的实用性,以掌握程序设计的基本方法;针对网络编程技术。《C#网络编程技术教程》以“编程原理与思想”为中心,而...
《医学图像编程技术》是医学图像编程的入门级教材和参考书。《医学图像编程技术》通过一个个由浅入深的编程范例,介绍了如何使用三维可视化工具箱VTK和医学图像分割与配准工具箱ITK进行三维医学图像编程。《医学图像...
在《提高C++性能的编程技术.pdf》这份文档中,作者强调了基础对于编程的重要性,并通过个人经历阐述了为何掌握诸如离散数学、算法与数据结构、操作系统、计算机体系结构、编译原理等基础知识对于成为一名优秀程序员...
由于提供的文件信息中不包含实际的文本内容,而仅仅是与文档打印相关的URL和时间戳,无法从中提取有关网络安全编程技术的具体知识点。因此,为了回答您的要求,我将基于标题和描述中提到的“网络安全编程技术与实例...
西门子S7-300/400 PLC编程技术及工程应用书籍详细介绍了PLC的编程技术及其在工程实践中的应用。该书籍总共分为六个部分,涵盖了S7-300/400系列PLC的系统概述、STEP 7编程环境、基于IEC 61131-3标准的编程语言和高级...
本光盘为《计算机网络高级软件编程技术》的配书光盘,内容包括书中所有编程训练的参考答案与完成编程所需要的背景知识、工具与参考资料。 本光盘程序包括代码和可执行文件,部分程序不提供完整代码。
远程控制编程是一种技术,它允许用户通过网络在一台计算机上对另一台计算机进行操作,就像直接坐在那台电脑前一样。这种技术在系统管理、故障排查、自动化任务执行等方面有着广泛的应用。 源代码是程序员与机器之间...
ActiveX编程技术与技巧.pdf
SAS编程技术教程(朱世武)数据集ResDat及全书程序集合,由于此包比较大,所以分为2部分下载,下载后自解压合并2部分即可.
【明日编程词典个人版注册文件】是一款集成了VB(Visual Basic)、VC(Visual C++)和Delphi等编程语言知识的工具,旨在为程序员提供一个便捷的代码查询和学习平台。这款软件提供了丰富的编程词汇、语法解释以及实例...
Cortex-M7 内核编程技术涉及诸多方面,包括体系结构、指令集、中断处理、存储系统、调试工具以及优化技巧。以下是对这些主题的详细解释: 1. **体系结构**:Cortex-M7 属于Cortex-M系列的一部分,它采用了改进的32...
综上所述,无论是出于个人兴趣还是职业发展的需要,《远程控制编程技术》及其源代码都是掌握远程控制编程技术的宝贵资源。这本书不单为读者提供了一个深入学习远程控制技术的平台,更为其实际应用提供了解决方案的...
ABB机器人RAPID编程技术参资料,包含《ABB PC SDK文件》 (开发C#上位机所需要环境)、《RAPID语言概览》、《RAPID指令、函数和数据类型》,用RAPID编程ABB机器人所需查的手册基本都在里面了。
VC++数据库编程技术与实例的随书光盘拷贝.
在中国象棋棋子图片资源包中,包含了用于编程的各种中国象棋棋子的图像文件,这对于开发中国象棋游戏或教学软件来说是非常重要的素材。这些图片可以被编程语言中的图形库或者游戏引擎所调用,以生动形象地展示棋局...
【VC++编程技术与大型项目源码学习】 VC++编程技术是Microsoft公司开发的一款强大的C++集成编程环境,尤其适用于Win32平台的基础应用程序开发。它以其强大的图形界面编程能力和高效的代码执行受到开发者喜爱,可以...
UNIX网络编程实例
此版为PDF,别的不多说了。因为比较大,压成3部分,下载请注意,此第一部分
同时,配合精选的编程实例,以使读者对Master CAM编程有更深一层的认识,能够高效率、高质量地完成数控编程实用技术的学习。《Master CAM 数控编程实用教程 》主要内容包括:利用CAD/CAM软件进行三坐标数控铣床...
《VC++编程技术600个大型项目源码》是一个极具价值的学习资源,它涵盖了大量由经验丰富的VC++工程师在实际开发大型项目中积累的技术精华。这个集合中的每一个项目源码都是精心挑选的经典实例,旨在帮助学习者深入...