WEBRTC 執行緒類

2021-07-13 23:54:12 字數 1186 閱讀 5228

thread 具備多種職責

1.傳統的提供執行乙個任務

由使用者實現runnable中的介面run 然後呼叫start(runnable)

或直接覆蓋 virtual void run()  然後呼叫start

2.基於訊息佇列非同步處理

只要post(訊息處理者,訊息本身) 然後彙總另乙個執行緒執行,當然還的啟動start(null)

3.基於網路事件的處理

int main()

return result;}*/

rtc::asyncsocket* pasycsock =  pthread->socketserver()->createasyncsocket(sock_stream);//非主動建立的thread也是可以建立socket具有事件處理功能的

// pthread->start();只對主動建立的thread物件才能start

pthread->processmessages(1);

return 0;

thread 建立後,可以通過start 執行,繼承thread的run 自動執行,但處理事件的processmessages需要自己呼叫,或thread::run()呼叫父類

以下建立thread的物件具有事件處理功能,可以建立socket

thread();

explicit thread(socketserver* ss);

explicit thread(std::unique_ptrss);

static std::unique_ptrcreatewithsocketserver();

以下建立的沒有事件處理功能 不能建立socket

static std::unique_ptrcreate();//只能具有執行緒和執行緒間訊息通訊功能

static thread* current(); //取決於當前執行緒的行為,本身不建立執行緒;即使在main中也不建立執行緒,只是建立了thread物件

如果是在main中是具有事件處理功能,可以建立socket,但不能start,所以不能建立再執行緒,但可以處理執行緒間訊息功能(沒有驗證)

如果是在thread::create 取的執行緒,則跟thread::create一樣,不能處理網路事件,

WebRTC 學習筆記(5) 執行緒模型

1,基本執行緒 webretc中主要有兩個執行緒 signaling thread 處理小工作量方法。要求此執行緒內的方法都必須快速返回。worker thread 處理大工作量的方法。此執行緒內的方法可能會處理很長時間,如網路訊息等。2,執行緒實現 webrtc中的執行緒包含了乙個訊息佇列。當需要...

WebRTC入門學習之初識WebRTC

引言 先宣告本人只是小小實習生一枚,若有不正確的,希望大家幫忙指正。一 webrtc基本架構 二 w3c提供的webrtc api 英文api 個人建議看英文版 中文api 版 三個主要api rtcdatachannel 用以任意應用資料通訊 學習重點 offer answer狀態機變化和ice狀...

webrtc之旅之什麼是webrtc(一)

這是一張經典的webrtc的架構圖,通過sip的 和閘道器將瀏覽器和終端連線起來,因此來引入我們的webrtc。所謂webrtc,首先要有web,就是圖中的各種瀏覽器,它代表了網際網路。然後就是rtc,及real time communication,即實時通訊,既然是通訊那麼就要有物件,包括 傳統...