IO多路复用-[多线程网络并发通信 epoll]

作者: 爱编程的大丙分类: 野生技能协会 发布时间: 2021-06-07 16:51:03 浏览:33703 次

IO多路复用-[多线程网络并发通信 epoll]

国家最高级不保护废物:
epoll并没有用到共享内存。。。我也是刚知道的[笑哭]

【回复】其实没有共享内存,还是拷贝的。看源码就知道了
【回复】回复 @梧桐一叶丶 : 是错的,看一下源码是用到了copy_from_user从用户空间将epoll_event结构copy到内核空间,有事件后再通过__put_user来把发生事件和用户传入的数据copy出去
【回复】总结而言,标准的 epoll 实现并不涉及到使用共享内存,而是通过系统调用和数据结构在用户空间和内核空间之间进行通信。在某些情况下,用户程序可能会自行使用共享内存等技术与 epoll 进行结合,以实现更高效的 I/O 通知和数据共享。 ----gpt3.5
大猪蹄子finley:
epoll应该是有拷贝的,源码中是有这么一段的 if (ep_op_has_event(op) && copy_from_user(&epds, event, sizeof(struct epoll_event))) goto error_return;

ybzbwanqing:
大佬能讲一下libevent之类的库吗[点赞][点赞]

240217:
用epoll的多线程和不用epoll的多线程有什么区别呢?既然用了epoll还要用多线程,那为什么不直接多线程呢,不是很清楚这个

【回复】用多线程处理工作业务,从逻辑上没有问题,但需要频繁用到线程的创建、销毁,这是比较占用系统资源的事情,试想你的CPU40%(夸张了)的时间都在执行创建、销毁线程的操作,而非执行具体的业务代码,显然是低效率的。而epoll的监测,是内核层面的,其本身不涉及线程创建、销毁等操作,是极其节省资源的。所以将二者搭配起来使用,融合两者的优点。
【回复】应该搭配线程池使用,视频的代码没有而已,也是每次连接和通信都创建了线程
【回复】因为现代的cpu都是多核的,多线程可以并行的执行,对于单核cpu我觉得用不用多线程区别不大吧
我要学习cpp:
用这个不还是要启动线程吗?一个客户端交互很久的时间的话,岂不是不能响应其他客户端了?

人不死学习不止:
up主不亏是做过讲师,说话很流利,也很清晰。

_Talon:
如何在securecrt设置彩色字体,还有如何写代码有提示呢?

【回复】回复 @20161002 :vscode搜一个ssh插件,可以直接连到服务器,直接在服务器编译,我平时在win上练习的时候,因为cmd有时候会有一些编码问题,我平时就是这样用,开个ubuntu虚拟机
【回复】回复 @人不死学习不止 :vscode可以本地写代码然后ssh同步到服务器?
【回复】回复 @人不死学习不止 : 俺也一样
云鬓寒:
丙神nb,看完并发网络通信立马转来看IO多路复用了

你好教员:
大丙给力,吾辈之楷模。期待大丙出更多的视频

知识分享官 C/C++ 多线程 TCP Linux 网络通信 socket 高并发 epoll 打卡挑战

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