ICode9

精准搜索请尝试: 精确搜索
  • Linux-高级IO2022-02-23 11:30:17

    高级IO 非阻塞IO -- 对比阻塞IO 非阻塞:能做就做,不能做也不等待 因为速度不匹配,有些IO函数会出现假错, 不是因为函数报错,而是阻塞IO在读取或者写入的时候速度太慢。 有限状态机编程思想 1、非阻塞IO – 补充有限状态机思想 数据中继:数据在文件之间传输 简单流程:一个程序的自

  • 【Linux】14.IO多路转接之详解poll2022-02-21 12:32:43

    目录 poll:地位不如select,因为select可以跨平台,性能又不如epoll接口函数poll的优缺点poll阻塞监控代码poll非阻塞监控代码poll超时时间监控代码 poll:地位不如select,因为select可以跨平台,性能又不如epoll 接口函数 int poll(struct pollfd* fds, nfds_t nfds, int timeout)

  • linux源码解读(二十四):进程间通信IPC方式对比&poll接受数据2022-02-20 21:33:07

      为了确保进程数据的安全,cpu在硬件级别就支持不同进程的内存隔离了,采用的手段分别是:LDT和分页;每个进程都有自己的ldt描述符,严格规定了该进程使用的物理内存!同时还有分页机制,不同进程就算是同样的虚拟地址,也会映射到不同的物理地址!这两项措施严格保证了进程之间的物理内存是严格

  • 20220210 java.util.Queue2022-02-10 21:34:40

    java.util.Queue 基本信息 public interface Queue<E> extends Collection<E> rt.jar 引入版本:1.5 使用说明 java.util.Collection 的子接口,Java 集合框架的一员 除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作

  • select poll epoll2022-02-09 10:33:55

    select、poll、epoll都是IO多路复用的机制,但是他们的机制有很大的区别1、select select机制刚开始的时候,需要把fd_set从用户空间拷贝到内核空间,并且检测的fd数是有限制的,由FD_SETSIZE设置,一般是1024。检测的时候,根据timeout,遍历fd_set表,把活跃的fd(可读写或者错误),拷贝到用户空间

  • linux eventpoll2022-02-03 18:00:07

        eventpoll是什么? eventpoll是一个可以监听多个file发生改变,并调用这个file发生改变的回调函数的一种功能,它一个wait可以wait所有注册到这个eventpoll的文件的改动。 eventpoll框架 一个eventpoll会有很多个epitem,这些epitem会用eventpoll.rbr rbtree组织起来。一个epitem代

  • 从阻塞式IO到epoll——IO精讲2022-02-03 16:34:47

    Linux虚拟文件系统的理解 VFS 是一棵树, 树上的节点可以映射到对应的物理位置 与之对应的,什么是实际上的文件系统呢,比如说Windows操作系统上的,D盘对应的就是那块磁盘,C盘对应的就是这块磁盘. VFS中, 每一个文件都一个唯一的inode号来代表它 读文件时内存会在内存中开辟一

  • IO多路复用中Epoll和select、poll的小随笔2022-02-02 21:03:01

      首先要明白的是:Epoll和select以及poll没有存在谁好谁坏的情况,需要根据实际应用来决定使用哪个。   select和poll一样,在epoll出来以前,实现IO多路复用的方式都是监听一大个fds队列。   eg:fds可以理解成一个大大的进程监听队列(等待IO数据ing)   1.先遍历第一遍,如果没有进程就

  • Linux设备驱动--轮询操作2022-01-30 20:02:53

    注:本文是《Linux设备驱动开发详解:基于最新的Linux 4.0内核 by 宋宝华 》一书学习的笔记,大部分内容为书籍中的内容。 书籍可直接在微信读书中查看:Linux设备驱动开发详解:基于最新的Linux4.0内核-宋宝华-微信读书 (qq.com) 字符设备指那些必须以串行顺序依次进行访问的设备,如触摸屏、

  • 用数组实现循环队列(新思路)2022-01-27 18:31:21

    用数组实现循环队列(新思路) 用数组实现一个循环队列,难点就在于如何判断数组是否满了,不论是书上的方法,还是一些大佬的写法,都是利用一个计算去判断:(rear + maxSize - front) % maxSize 有的小伙伴天资聪颖一下就理解了,有的小伙伴可能理解不够深刻,只能牢牢记住这个公式 在这里我给

  • 读取输入设备信息2022-01-18 21:01:31

    查询方式:轮询 休眠-唤醒: poll方式: 异步通知: 注意:方法没有优劣之分,不同的场合使用不同的方法! ------------------------------------------------------------------------- 获取输入设备信息 open ioctl

  • Linux阻塞与非阻塞IO访问与异步信号2022-01-15 13:58:16

    一、基本概念介绍         这里的 IO 指的是Input/Output,也就是输入和输出,可以理解为应用程序对驱动设备的读写操作。阻塞IO是指:当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,应用程序会被系统挂起,系统会先去执行其他进程,直到设备资源可以获取为止。非阻塞IO

  • 阻塞队列2022-01-14 18:32:47

    FIFO BlockingQueue ArrayBlockingQueue LinkedBlockingQueue SynchronousQueue 什么时候使用阻塞队列 多线程并发处理,A调用B,如果B未执行完,A需要等待 多线程,线程池 使用队列 四组API 抛出异常 不会抛出异常 阻塞等待 超时等待 方式 抛出异常 不会抛出异常有

  • Modbus poll的地址解析配置2022-01-13 11:00:27

    如何读取modbus设备上的值,要求如下:       如果要读取 40001和40002的地址数据,那么界面上:     如果要读取:42001和42002的数据,如下图所示:    

  • Linux 网络I/O模型2022-01-11 23:35:12

    Linux 网络I/O模型 1. 阻塞IO模型 最常用的I/O模型,缺省情形下,所有文件操作都是阻塞的。进程空间调用recvfrom函数,直到数据包到达且被复制到应用进程的缓冲区中或者发生错误时才返回,在此期间,进程会被阻塞一直等待。 2. 非阻塞IO模型 recvfrom函数当发现内核缓冲区没有数据时,直接

  • 【操作系统】I/O多路复用 select poll epoll2022-01-05 18:31:56

    @目录I/O模式I/O多路复用selectpollepoll事件触发模式 I/O模式 阻塞I/O 非阻塞I/O I/O多路复用 信号驱动I/O 异步I/O I/O多路复用 I/O 多路复用 相较于多进程多线程技术区别在于一个进程或线程可以处理多个事件。I/O多路复用通过一种机制,可以监视多个描述符,一旦某个描述符就绪,

  • IO多路复用模型之select,poll,epoll2022-01-01 18:31:41

    IO多路复用模型有三种模式:select,poll,epoll select:通过进程监控文件描述符(fd)的方式 每次selelct把fd从用户空间copy到kernel然后遍历fd判断文件是否就绪单个进程操作fd数量默认限制1024 poll:poll使用链表保存文件描述符。没有fd数量限制。 epoll:epoll提供了三个函数,epoll_create,

  • Modebus Slave 与 Modbus Poll主从设备模拟软件与Configure Virtual Serial串口模拟软件使用2022-01-01 09:33:34

    场景 Configure Virtual Serial Port Driver 1、多个虚拟串口映射; 2、收/发多线程架构发多线程架构; 3、支持虚拟串口参数同步指令支持虚拟串口参数同步指令; 4、自动错误纠正、自动连接、自动重新试自动错误纠正、自动连接、自动重新试; 5、实时虚拟串口数据传输监控实时虚拟串口数

  • kafka重复消费问题2021-12-23 13:05:35

    造成消息重复的原因: 根本因素:数据已经消费了,但是offset没有提交。 1、 程序被kill或者系统宕机、重启,导致offset没有提交。 2、 消费数据后,offset还没有提交时,partition就断开连接。max.poll.interval.ms参数定义了两次poll的最大间隔,它的默认值是 5 分钟,表示你的 Consumer

  • Kafka常见的导致重复消费原因和解决方案2021-12-22 17:06:09

    问题分析 导致kafka的重复消费问题原因在于,已经消费了数据,但是offset没来得及提交(比如Kafka没有或者不知道该数据已经被消费)。 总结以下场景导致Kakfa重复消费: 原因1:强行kill线程,导致消费后的数据,offset没有提交(消费系统宕机、重启等)。 原因2:设置offset为自动提交,关闭kafka时

  • 【多路复用器 - 2】poll2021-12-19 09:05:45

     Poll是select 的升级版本,解决了select监听fd的数量上限1024的问题,其余问题任然存在 只告诉你IO状态,读取还是你自己读 参考【多路复用器 - 1】select_泰山与水-CSDN博客  逻辑一样 总结   poll通过一个PollFd的结构体包装了fd,这样突破了select最多监听1024个fd的限制用

  • Linux select机制2021-12-17 09:03:06

    一、poll和seclect机制的区别 select was introduced in BSD Unix, released in August 1983, whereas poll was introduced in SVR3 Unix, released in 1986. Operations in poll and select is linear and slow because of having a lot of checks. The main advantag

  • C++面试知识总结-网络编程2021-12-16 22:02:55

    目录 1.IO多路复用 1.1基础概念 1.1.1用户空间和内核空间 1.1.2 进程切换 1.1.3 进程阻塞 1.1.4 文件描述符 1.1.5 缓存I/O 1.2 IO多路复用 1.2.1 同步阻塞(BIO) 1.2.2 异步阻塞(NIO) 1.2.3 IO多路复用的三种体现:select,poll,epoll 1.2.3.1 select 1.2.3.3 poll 1.2.3.4 epoll nginx/

  • select、poll、epoll之间的区别总结[整理]2021-12-15 11:02:38

    select、poll、epoll之间的区别总结[整理]   select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件

  • 2.继承Queue接口的类2021-12-06 09:59:55

      LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。 Queue<String> queue = new LinkedList<String>(); 一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。 这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有