1.字节跳动:
面试官:你说说IO和NIO的区别吧。
我:主要的区别就是IO在读取资源的时候如果读不到就会阻塞在那里,但是NIO能不能读到都会立刻返回一个结果,线程可以去做其他事。
面试官:你说tomcat是IO还是NIO模式的
我:tomcat是NIO的啊(这里答错了,其实IO和NIO tomcat都可以支持,其实大多数都是IO和NIO都可以支持的,包括Netty在内)
面试官:那tomcat去请求一个资源的时候可能需要花费一段时间,几分钟的过程,那你说它还是NIO的吗?
我:。。。。。。。。。。。。。。。。(我觉得哪里不对,像是哪里被混淆了,但是又无法反驳)
面试结束思考:我觉得NIO和IO所要解释的场景不是整个请求过程,而是请求结果,无论是要需要一小时还是两小时,这个是请求的中间过程,和IO或者NIO模式本身没有任何关系,IO和NIO是请求之后的完成动作(读没读到资源都算是请求完成),而不是面向请求过程的。
暂时是这样想的,各位路过大神感兴趣的来指点一下谢谢。