美文网首页WebRTC
WebRTC源码分析-线程基础概述

WebRTC源码分析-线程基础概述

作者: ice_ly000 | 来源:发表于2019-11-08 19:57 被阅读0次

WebRTC实现了跨平台(Windows,MacOS,Linux,IOS,Android)的线程类rtc::Thread,WebRTC内部的network_thread,worker_thread,signaling_thread均是该类的实例。该类的源码位于rtc_base目录下的thread.h与thread.cc中。

基础功能

rtc:: Thread及其相关类,ThreadManager、MessageQueue,Runnable等等一起提供了如下的基础功能:

  • 线程的管理:通过ThreadManager单例对象,可以管理所有的Thread实例;
  • 线程的常规基本功能:rtc:: Thread提供创建线程对象,设置线程名称,启动线程去执行用户代码;
  • 消息循环,消息投递:rtc:: Thread通过继承MessageQueue类,提供了内部消息循环,并提供了线程间异步,同步投递消息的功能;
  • 跨线程执行方法:提供了跨线程执行方法,并返回执行结果的功能。该功能非常强大,因为WebRTC在某些功能模块的使用上,有要求其必需在指定的线程中才能调用的基本要求,比如音频模块:ADM 的创建必须要在 WebRTC 的 worker thread 中进行;
  • 多路分离器:通过持有SocketServer对象,实现了多路分离器的功能,能处理网络IO;

类的继承图

源码分析

后续将分别分析源码来阐述WebRTC通过上述几个类来实现上诉功能的。

  1. WebRTC源码分析-线程基础之线程管理
  2. WebRTC源码分析-线程基础之线程基本功能
  3. WebRTC源码分析-线程基础之MessageQueueManager
  4. WebRTC源码分析-线程基础之Message && MessageData
  5. WebRTC源码分析-线程基础之MessageQueue
  6. WebRTC源码分析-线程基础之消息循环,消息投递

相关文章

网友评论

    本文标题:WebRTC源码分析-线程基础概述

    本文链接:https://www.haomeiwen.com/subject/gxeuvctx.html