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

WebRTC的线程事件处理

1. 不同平台下处理事件的API:

  1. Linux系统下,处理事件的API是epoll或者select;
  2. Windows系统下,处理事件的API是WSAEventSelect,完全端口;
  3. Mac系统下,kqueue

2. WebRTC下的事件处理类:

  1. NullSocketServer(处理无socket的事件)(工作线程)
  2. PhysicalSocketServer(处理有socket事件)(网络线程)

事件如何协调线程工作:
信令线程—>触发事件—>公共对象(NullSocketServer或PhysicalSocketServer)(唤醒睡眠线程)—>等待事件(睡眠状态)—>工作线程/网络线程

在这里插入图片描述

webrtc下事件的发生:
在这里插入图片描述

等待线程处理逻辑:
在这里插入图片描述

while(true)
{Get(&msg,); // 如果没有时间,在Get()函数中睡眠等待事件Dispatch(&msg);}

Get函数:
如果队列不为空,则取出事件后调用Dispatch处理;如果队列为空,则调用Wait等待事件发生
在这里插入图片描述

Wait函数:
在这里插入图片描述


http://www.kler.cn/a/461834.html

相关文章:

  • 在Linux下安装部署Tomcat教程
  • Flutter中的网络请求图片存储为缓存,与定制删除本地缓存
  • zookeeper+kafka
  • Unity3D ILRuntime开发原则与接口绑定详解
  • 使用CSS 和 JavaScript 实现鼠标悬停时图片放大、缩小和抖动
  • NSGA-II(非支配排序遗传算法II)详解与实现
  • 五、其他核心概念
  • 基于SpringBoot在线竞拍平台系统功能实现三
  • 免费的量化交易股票API有哪些局限性?
  • 人工智能-Python上下文管理器-with
  • Windows系统下Rancher安装全攻略:开启容器管理新征程
  • Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(2):配置主数据库
  • MATLAB条件判断(if_else_end型)
  • WPS计算机二级•表格初认识
  • 【UE5 C++课程系列笔记】18——蓝图变量自动加载“DefaultEngine.ini”文件变量作为默认值
  • 本地快速推断的语言模型比较:Apple MLX、Llama.cpp与Hugging Face Candle Rust
  • EasyPlayer.js遇到播放RTMP视频时,画面显示异常是什么原因?
  • 【递归、搜索与回溯算法】二叉树中的深搜
  • RACI矩阵在项目管理中的应用:优化任务管理
  • Kafka配置公网或NLB访问(TCP代理)
  • Github 2024-12-31Python开源项目日报Top8
  • 两种分类代码:独热编码与标签编码
  • 人工智能在SEO中的应用与关键词优化策略
  • 目标检测之DINO详解
  • android 外挂modem模块实现Telephony相关功能(上网,发短信,打电话)
  • R中单细胞RNA-seq分析教程 (7)