epoll的问题

来源:8-2 什么是非阻塞 IO?(二)

weixin_慕先生2283106

2022-06-08

老师你好,资讯几个问题:

  1. 查询epoll的时候需不需要进入内核态?
  2. 本节课提到的通过go的协程来监听socket,对比epoll来说,除了可能存在的免于进入内核态之外,还有什么其他的优点吗?
  3. 经常看到面试题,提到一些关于同步异步阻塞非阻塞的区别,之前也查过一些资料,但是很多都相互矛盾,请问老师能说一下自己的理解吗?
写回答

1回答

Moody

2022-06-09

  1. 需要,但是查询Epool是p0协程做的,业务协程不需要进入内核态

  2. 就是将系统调用和协程调度解耦了(其实主要也就是你说的免于进入内核态)

  3. 同步与异步指的是编码调用层面,返回值是不是随着函数调用一起返回了。阻塞与非阻塞指的是资源层面,等待返回值的过程中,代码有没有停止运行等待。这是我的理解。

1
0

深入Go底层原理,重写Redis中间件实战

深入Go语言原理+Go重写Redis

474 学习 · 172 问题

查看课程