码迷,mamicode.com
首页 > 编程语言 > 详细

webrtc的线程安全处理--消息处理

时间:2020-01-02 22:53:55      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:安全   info   需要   isp   返回值   线程   虚函数   actor   方法   

前言

webrtc中为了保证线程安全,在线程中使用消息队列机制处理消息

正文

举一个创建PeerConnectionFactory时的例子为例;此处已经创建了PeerConnectionFactory对象 pc_factory,此时需要对其进行Initialize()操作,首先创建了一个方法调用器
技术图片

该方法调用器经过初始化之后保存着,实例对象需要调用的成员函数指针,和返回值,是用来调用方法的; 注意这个实现的虚函数OnMessage(),线程是通过该接口处理消息队列中的消息
技术图片

然后使用了方法调用器去调用Initialize去初始化pc_factory
技术图片

Marshal是一个线程同步的方法调用函数,其通过当前对象初始化一个SynchronousMethodCall对象,然后调用其Invoke
技术图片

该invoke()会判断当前线程是否为目标线程,如果是就直接调用OnMessage()直接处理,;
技术图片

否则会将调用,通过消息的方式发送给目标线程的消息队列中
技术图片

在线程检查自己的消息队列进行Dispatch()的时候,其会调用实现的虚函数OnMesaage()去处理该消息
技术图片

执行该message的时候使用的是方法调用器的一个返回值去进行回调的,方法调用完成,r就有了实际的返回值,然后返回
技术图片

webrtc的线程安全处理--消息处理

标签:安全   info   需要   isp   返回值   线程   虚函数   actor   方法   

原文地址:https://www.cnblogs.com/ishen/p/12142205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!