
面试有被问到网络 IO 的问题,这玩意儿到底有啥用处?(理解它的必要性、使用场景等)
网上的博客都在说细节,就把它当作八股文的一部分,我想知道一些实际的用途
1 kenneth104 2022 年 8 月 27 日 网络 IO ,这话题感觉很大? 是特指 sockets 套接字么? |
2 fengchen0vr 2022 年 8 月 27 日 硬件方面,中断之类的会占用 cpu 软件方面,发包延时,队列 |
3 uiosun OP @kenneth104 面试官就问我网络 IO ,没有特指……所以我也不知道到底是 socket 、eproll 或者啥了 |
4 documentzhangx66 2022 年 8 月 27 日 既然面试官没特指,那你就给他上一课,从网络被发明时讲起嘛,然后讲到各种网络协议、现代网络结构、各种网络硬件与软件,等等。 |
5 kenneth104 2022 年 8 月 27 日 是挺笼统的问题,尝试在你认知内回答就好。。感觉不用硬顶着回答 |
6 wellsc 2022 年 8 月 27 日 有点反智了 |
7 ryd994 2022 年 8 月 27 日 via Android 如果你不知道有啥用,那就没啥用。计算机是一门实践技术,要用什么学什么。 |
8 bigbyto 2022 年 8 月 27 日 via iPhone IO 是很多东西的基础,不理解的话也很难理解其他框架,容易人云亦云。 比如 tomcat 是如何操作 web request 的,你不理解 io 模型,就不理解为什么要那样设计。 还有 kafka 为什么性能那么高?就是因为 zero-copy 和顺序 io 以及充分利用了 page cache 等等。 这是个基础,别因为是八股文就排斥。之前写过一篇 io 的,自认为还可以,有兴趣可以参考一下。 https://wiyi.org/linux-io-model.html |
9 bigbyto 2022 年 8 月 27 日 via iPhone 再举个例子,tomcat 和 netty 一个是阻塞 io ,一个非阻塞(多路复用),让你去调整它们的线程池,不懂 io 的话,你就不知道怎么调,只能瞎蒙。 |
10 myd 2022 年 8 月 27 日 线上系统偶尔会出现网络问题,不了解原理的话很难定位问题 |
11 darkengine 2022 年 8 月 27 日 前端:大部分 UI 卡顿跟网络 IO 有关 后端:服务的并发、请求调度跟网络有关,随着分布式的发展,连存储都跟网络 IO 有关。 你说理解网络 IO 有啥用 |
12 Helsing 2022 年 8 月 27 日 via iPhone 简单点说,网络 IO 设计的不好会影响网络吞吐量,进而影响访问速度,下游或用户就会发现服务访问慢,直接感受就是体验不好,最后就有可能导致用户流失。用户流失那钱就没了。 |
15 fkdtz 2022 年 8 月 27 日 现如今的业务场景几乎没有只需要单机处理就能满足的,而且摩尔定律早已失效,提升单机性能已达极限,所以基本上都是分布式系统了。 网络 IO 之于分布式系统,就像文件 IO 之于单机系统。 利用 IO 的特点,发挥最佳性能,如果不理解 IO ,就没办法实现。 |
| td width="auto" valign="top" align="left"> |
17 fox0001 2022 年 8 月 27 日 via Android 1 )不知道你面试的什么工作和职位,很难判断。 2 )“网络 IO”这几个字很模糊,或者说范围大。或者问问面试官想要问什么? |
18 Jooooooooo 2022 年 8 月 27 日 redis 为什么是单线程的? |
19 akira 2022 年 8 月 27 日 对 CRUD boy 确实没啥用。 一个公司里面 有那么 2 个人会就行了。 大部分公司没人会也没啥事。。。 |