返回

重生2005当科技大佬

首页
关灯
护眼
字体:
第三十三章 面试人才(三)(1/2)
   存书签 书架管理 返回目录
    阅读提示:为防止内容获取不全,请勿使用浏览器阅读模式。

    “C/S架构系统应用过程中,会发生一个服务端程序服务众多客户端,用什么技术手段,提前解决服务阻塞问题的发生?”

    曹志军意外地看着李洛,他不是在思考问题的答案,而是在惊讶他对“编程”知识的认知程度,眼前这位十八九岁的小老板,根本就是个技术大佬,不然,怎么能知道着这种直达问题核心的技术难题。

    “曹先生,你这么看着我做什么,这个问题应该不难吧!”李洛笑吟吟地看着直愣愣的曹志军,笑着问。

    “这个问题不难解决,在服务器编程中有不少解决的方法,比:如多线程、多进程、复用IO,……等等。”曹志军缓过神来,摆正态度看着李洛,回答道。

    “很好,那你能不说一说多线程怎么解决?在服务端ept和read都有阻塞程序!”李洛满意地一笑,接着问。

    “嗯,解决思路是这样的,服务端同时处理多个客户端请求时,需要处理的情况有很多种,比如,新客户端等待与服务端建立连接,已连接客户端发送数据,已连接客户端断开连接等等情况,……,如果服务器采用轮询阻塞的方式运行,那么同一时刻只能处理一种情况,这时其他情况发生就要等待阻塞结束,……,可以通过锁,线程间通信,多个线程间同步等手段,实现分别处理工作,……。”曹志军思考了片刻,详细介绍道。

    “这个模式可以解决,不过,用这种方式监听多个客户端,需要程序在用户态和内核态之间来回切换,浪费系统资源不说,客户端的请求也得不到及时的响应,当客户端数量增大时,查询效率直线下降,……,这个问题怎么解决?”李洛笑着点头,续集抛出一个问题。jj.br>

    认真听完李洛的提问,曹志军神情严峻,认真思考起来,再次感到对方的狠辣。

    曹志军思考了十来分钟,不确定地回答:“使用多路复用技术,让内核阻塞监听每个客户端是否可读,……,达到减免用户态和内核态之间来回切换!”

    李洛点了点头,赞同道:“不错的思路,不过,如果加入selt的使用,你觉得怎么样,将服务端自身的sket也加入到selt的监听列表中,当有新连接到达时,selt会返回当前服务端sket处于活动状态,这时处理新连接即可,能避免多线程的挤压使用……,”

    闻言,曹志军眼前一亮,忍不住赞叹道:“这个办法好,……。”

    李洛微微一笑,看着兴奋的曹志军,再次抛出一个问题:“在系统使用过程中,server端会出现大量的假死连接,这个问题你是怎么解决的?”

    曹志军眉头一皱认真思考起来,假死链接这个问题不常见,但是不能说没有/

    这个问题怎么解决呢?

    曹志军不由自主地陷入思考,抓着脑门,被这个问题难住了。

    李洛笑呵呵地看着曹志军,有点喜欢他较真的性格,几次提问,已经能判断出曹志军的性格,而是不他的能力。

    能力这种东西,后期通过努力的学习,都能获得提升,问题是个人的性格,能不能用心学习新技术,是否值得培养才是要不要招他的关键,曹志军目前为止的表现,还算合格。

    “假死链接可以用两种方式解决,第一种,对连接上的套接字做保活处理,即设置keeplive,此后如果在规定时间内无数据传输,那么p协议栈会自动发送keeplive探测包,以维护当前连接有效性。”李洛笑着提醒,接着又道:“不过,这种解决方法有缺陷,会出现一些不可控的情况。”

    “没错,如果在S端这样设置端会意外断电、网络会异常终止、或者被第三方软件或防火墙干掉。”曹志军眼睛一亮,补充道。

    停顿了一下,曹志军迫切地看着李洛,关心地问:“第二种呢!”


本章未完,请点击下一页继续阅读》》
上一章 目录 下一页