什么是epoll机制

epoll 是一种 I/O 事件通知机制,最初出现在 Linux 操作系统中,用于高效地管理大量的文件描述符(sockets、files、pipes 等)。它是 Linux 下的一种 I/O 复用机制,类似于 BSD 的 kqueue 和 Solaris 的 devpoll

从阻塞---

1.一个线程怎么处理多个i/o?

多个线程处理多个io 看起来可以,但会影响更多的性能。

普通-->使用一个while(true)循环不断轮训。结论 如果所有的流都没有数据,那么只会白白浪费cpu。---》cpu空转。

进一步 -〉在while里加一步select(stream)在for循环之前。结论:从select可以知道 有io事件发生了,但是不知道是哪几个流。我们只能无差别的轮训,找出能读写的数据,进行操作。

再进一步epoll -》

while(true){
active_stream() = poll_wait();
for(){
    read or write
}
}

 结论,epoll会把哪个流发生了什么io事件通知我们,此时我们对这些流的操作都是有意义的。复杂度降低到了O(1);

在handle中:

  private native static long nativeInit();

    MessageQueue(boolean quitAllowed) {
        mQuitAllowed = quitAllowed;
        mPtr = nativeInit();
    }
nativeInit(),就有对epoll的初始化;mPtr 是一个标识

在handle的 Message next() 中,有一行

nativePollOnce(ptr, nextPollTimeoutMillis);nextPollTimeoutMillis等待的时间

有等待就会有唤醒,唤醒就是 nativeWake ,-=--》是字节码底层唤醒的

 

相关推荐

  1. 什么epoll机制

    2024-02-04 18:18:03       35 阅读
  2. 注意力机制 究竟什么

    2024-02-04 18:18:03       33 阅读
  3. 什么机器学习?

    2024-02-04 18:18:03       43 阅读
  4. 机器学习】什么?

    2024-02-04 18:18:03       28 阅读
  5. 什么机器学习

    2024-02-04 18:18:03       34 阅读
  6. 机器学习什么

    2024-02-04 18:18:03       28 阅读
  7. 机器学习什么

    2024-02-04 18:18:03       30 阅读
  8. 机器学习什么

    2024-02-04 18:18:03       28 阅读
  9. 机器学习什么

    2024-02-04 18:18:03       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-04 18:18:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-04 18:18:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-04 18:18:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-04 18:18:03       20 阅读

热门阅读

  1. scoped样式隔离原理

    2024-02-04 18:18:03       27 阅读
  2. eCos GPIO读写及其中断处理

    2024-02-04 18:18:03       31 阅读
  3. Relation-graph关系图/流程图,VUE项目基础使用

    2024-02-04 18:18:03       41 阅读
  4. 事件在状态流程图中的工作方式

    2024-02-04 18:18:03       33 阅读
  5. 类银河恶魔城学习记录1-6 Flip基本设置源代码 P33

    2024-02-04 18:18:03       30 阅读
  6. 线阵相机系列-- 1. 什么是线阵相机

    2024-02-04 18:18:03       31 阅读
  7. 【BBF系列协议】TR181-2 TR369的设备数据模型

    2024-02-04 18:18:03       36 阅读
  8. 进程任务通信3种方式

    2024-02-04 18:18:03       38 阅读
  9. 开源计算机视觉库OpenCV详解和实际运用案例

    2024-02-04 18:18:03       33 阅读
  10. windows下docker的使用

    2024-02-04 18:18:03       31 阅读