当前位置: 首页 > news >正文

自学嵌入式第28天-----select,

select中的难点:

1.文件描述符集合的重复初始化

  • 问题select 会修改传入的 fd_set,因此每次调用前都需要重新初始化这些集合。

  • 解决方法:在循环中使用 select 时,务必在每次调用前重新设置 fd_set,或者使用备份集合来保存原始状态。

2. 超时机制

  • 问题select 的超时参数是一个指向 struct timeval 的指针,超时后需要重新设置。如果超时时间为 NULLselect 会一直阻塞。

  • 解决方法:合理设置超时时间,避免长时间阻塞。如果需要精确控制超时,可以使用 timerfd 或 epoll 的超时机制。


    构建TCP并发服务器:

    让TCP服务端具备同时响应多个客户端的能力。

    1. 多进程
        资源消耗大,同资源平台下,并发量小。
    2. 多线程
         创建线程、进程,比较耗时
    3. 线程池
         提前预创建大量线程,避免任务执行过程中创建线程
         的耗时

相关文章:

  • BambuStudio学习笔记:MarchingSquares类
  • mysql中如何保证没有幻读发生
  • 道可云人工智能每日资讯|亚马逊云业务部门成立智能体人工智能团队
  • 解析调控网络之竞争结合
  • 只要四行代码就能解决mac上运行exe文件的问题
  • 05-2基于vs2022的c语言笔记——表达式
  • Mysql-经典故障案例(1)-主从同步由于主键问题引发的故障
  • 深度学习Save Best、Early Stop
  • Quadrotor-NMPC-Control 开源项目复现与问题记录
  • 03.06 QT
  • ComfyUI进阶教程核心要点与详解
  • 多模态模型在做选择题时,如何设置Prompt,如何精准定位我们需要的选项
  • 【Kubernetes 指南】基础入门——Kubernetes 基本概念(四)
  • Python在DevOps中的应用:自动化CI/CD管道的实现
  • 【电控笔记z29】扰动估测器DOB估测惯量J-摩擦系数B
  • 私有云基础架构与运维(一)
  • Mybatis中的设计模式
  • SpringBoot+Vue 多模块(子父工程)项目的注册登录及增删改查
  • 软件工程画图题
  • leetcode202 快乐数 哈希结构 集合
  • 网站关键词引流/优化网站排名费用
  • 重庆网站开发/推荐友情链接
  • 建设企业网站的意义/今日的最新消息
  • 优秀网站设计有哪些/百度竞价什么意思
  • 网页制作工具可以发布网站吗/公司官网怎么做
  • 网络推广网站排名/域名检测工具