IO多路复用是什么?如何设计一个高性能服务器?

作者: 码上小白分类: 计算机技术 发布时间: 2023-07-04 21:22:57 浏览:14061 次

IO多路复用是什么?如何设计一个高性能服务器?

Jiyeon2_:
我记得小林coding指出过,epoll_wait 实现的内核代码中调用了 __put_user 函数,这个函数就是将数据从内核拷贝到用户空间,并不是用共享内存的

【回复】确实不是共享内存,很多up这点讲的都有误
抱起路人就跑:
说白了,单个线程的利用率应该发挥到极致才行。 单纯多线程就是资源浪费,且能明显见到cpu上下文切换

【回复】回复 @老三不再摆烂 :你几岁啊?能不能别乱回复?你视频都没看完? 确实和多线程没关系,但是这种io多路复用优化对于单个线程来说就是性能提升,因为单个线程不再阻塞(epoll),那么单个线程的利用率就拉满上去了,能干更多事情(可以做闲时处理)
【回复】回复 @老三不再摆烂 :[doge]没你懂,你才是懂王
【回复】回复 @Dear鹿Q :你太懂啦[呲牙]epoll_wait()知道是啥不?阻塞不阻塞?有没有可能上下文切换说的是user到kernel[呲牙]
抱起路人就跑:
这种情况,多线程是资源的浪费,一个线程的使用率过低,极其低!!! c语言网络编程,包含win,linux平台,io多路复用也有。

菜还不让说-:
你们说多线程是资源的浪费,如果我实打实同时给 1000 个人直播推流阁下如何应对

【回复】回复 @Dear鹿Q :你也只会 socket 了,有空去玩玩二层,三层,nat
惊群:
感觉学编程这些年,到底学了个啥?都是调系统API或者别人开发的库、框架,自己都写不出啥牛逼的东西,像视频里说的那个I/O复用API也是别人搞好的,内核对于我来说一直都是个黑盒,唉。

【回复】同感,学之前以为啥都能diy,结果都是现成的,之前打的基础都白费了都遗忘了
烟火予你:
up主,我想问一个epoll有关的问题,就是我在unbuntu20中学习使用epoll的ET模式下,使用非阻塞socket,小容量缓冲区循环读取数据时总会读取很多空字符(\u000),然后才读取结束(EAGAIN),请问你知道是什么原因吗[脱单doge]。已三连

AsheZzzzz:
刚在csapp上看到关于多路复用的章节,打开b站就刷到了[笑哭]

科技猎手 非阻塞IO 阻塞IO 多线程 计算机技术 IO多路复用 必剪创作

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!