日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

muduo之EventLoopThread

發布時間:2025/6/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 muduo之EventLoopThread 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ?muduo用EventLoopThread提供了對應eventloop和thread的封裝,意為I/O線程類,EventLoopThread可以創建一個IO線程,通過startLoop返回一個IO線程的loop,threadFunc中開啟loop循環,其中的API涉及一些多線程中的互斥量和條件變量的操作。

EventLoopThread.h

// Copyright 2010, Shuo Chen. All rights reserved. // http://code.google.com/p/muduo/ // // Use of this source code is governed by a BSD-style license // that can be found in the License file.// Author: Shuo Chen (chenshuo at chenshuo dot com) // // This is a public header file, it must only include public header files.#ifndef MUDUO_NET_EVENTLOOPTHREAD_H #define MUDUO_NET_EVENTLOOPTHREAD_H#include "muduo/base/Condition.h" #include "muduo/base/Mutex.h" #include "muduo/base/Thread.h"namespace muduo { namespace net {class EventLoop;//I/O線程類,線程池啟動IO線程 class EventLoopThread : noncopyable {public:typedef std::function<void(EventLoop*)> ThreadInitCallback;EventLoopThread(const ThreadInitCallback& cb = ThreadInitCallback(),const string& name = string());~EventLoopThread();EventLoop* startLoop(); //啟動成員thread_線程,該線程就成了I/O線程,內部調用thread_.start()private:void threadFunc(); //線程運行函數EventLoop* loop_ GUARDED_BY(mutex_); //loop_指針指向一個EventLoop對象bool exiting_;Thread thread_;MutexLock mutex_;Condition cond_ GUARDED_BY(mutex_);ThreadInitCallback callback_; //回調函數在EventLoop::loop事件循環之前被調用 };} // namespace net } // namespace muduo#endif // MUDUO_NET_EVENTLOOPTHREAD_H

EventLoopThread.cc

// Copyright 2010, Shuo Chen. All rights reserved. // http://code.google.com/p/muduo/ // // Use of this source code is governed by a BSD-style license // that can be found in the License file.// Author: Shuo Chen (chenshuo at chenshuo dot com)#include "muduo/net/EventLoopThread.h"#include "muduo/net/EventLoop.h"using namespace muduo; using namespace muduo::net;EventLoopThread::EventLoopThread(const ThreadInitCallback& cb,const string& name): loop_(NULL), //loop未啟動為NULLexiting_(false),thread_(std::bind(&EventLoopThread::threadFunc, this), name), //綁定線程運行函數mutex_(),cond_(mutex_),callback_(cb) { }EventLoopThread::~EventLoopThread() {exiting_ = true;if (loop_ != NULL) // not 100% race-free, eg. threadFunc could be running callback_.{// still a tiny chance to call destructed object, if threadFunc exits just now.// but when EventLoopThread destructs, usually programming is exiting anyway.loop_->quit();thread_.join(); //等待線程退出} }EventLoop* EventLoopThread::startLoop() {assert(!thread_.started());thread_.start(); //調用pthread_create創建線程,此時有兩個線程在運行//一個是調用EventLoopThread::startLoop()的線程,一個是執行EventLoopThread::threadFunc()的線程(IO線程)EventLoop* loop = NULL;{MutexLockGuard lock(mutex_);while (loop_ == NULL){cond_.wait(); //須要等待EventLoop對象的創建}loop = loop_; //IO線程創建loop_賦給主線程}return loop; //主線程返回IO線程創建的EventLoop對象 }void EventLoopThread::threadFunc() //創建線程時會調用這個函數 {EventLoop loop; //IO線程也要創建EventLoop對象,還要通知主線程已經創建完畢if (callback_){callback_(&loop); //將定義好的loop傳入回調}{MutexLockGuard lock(mutex_);// loop_指針指向了一個棧上的對象,threadFunc函數退出之后。這個指針就失效了// threadFunc函數退出,就意味著線程退出了,EventLoopThread對象也就沒有存在的價值了// 因而不會有什么大的問題loop_ = &loop;cond_.notify(); //創建好,發送通知}loop.loop(); // 會在這里循環,直到EventLoopThread析構。此后不再使用loop_訪問EventLoop了//assert(exiting_);MutexLockGuard lock(mutex_);loop_ = NULL; }

?

總結

以上是生活随笔為你收集整理的muduo之EventLoopThread的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女mm131爽爽爽免费动视频 | 九九热最新网址 | 国产精品免费一区二区三区在线观看 | 亚洲欧美动漫 | 欧美h视频在线观看 | 亚洲午夜在线 | 免播放器在线视频 | 色婷婷婷婷 | 国产熟妇与子伦hd | 黄色小电影网址 | 日本婷婷 | 人人做人人爽人人爱 | 国产又爽又猛又粗的视频a片 | 国产精品第7页 | 国产亚洲精品久久久久久久 | 午夜一区二区三区免费 | 艳妇臀荡乳欲伦交换在线看 | 亚洲激情文学 | av成人在线看 | 秋霞在线视频观看 | 久久91精品国产91久久小草 | 凹凸视频一区二区 | av男人的天堂网 | 亚洲欧美综合一区二区 | 亚洲色图欧美另类 | 一级黄色片欧美 | 成人在线91 | 亚洲成人三级 | 国产一区二区视频在线播放 | 久久亚洲a v| 中国黄色小视频 | 一区二区三区在线免费 | 人人草人人看 | 国产第100页| 一区二区视频在线免费观看 | 一区二区三区视频在线播放 | 99热9| 色乱码一区二区三区在线男奴 | 性生活视频在线播放 | 成人做爰视频www | 中文字幕视频一区二区 | 新中文字幕| 天天插天天搞 | 99热这里只有精品9 日韩综合在线 | 国产一区二区三区www | 一眉道姑 | 免费在线观看网址 | 无码国产精品一区二区免费16 | 写真福利片hd在线播放 | 一区在线看 | 蜜臀久久精品久久久用户群体 | h视频国产 | 一本一道波多野结衣av黑人 | 国产无码精品一区二区 | 欧美一级免费大片 | 女人av在线 | 黄色av网站在线观看 | 天天操婷婷 | 免费黄色网址在线 | 欧美一区二区三区啪啪 | 亚洲国语| 欧美视频在线观看免费 | 男人和女人做爽爽视频 | 日韩91视频 | 69er小视频 | 中国老头性行为xxxx | 色欲狠狠躁天天躁无码中文字幕 | 91免费黄色| 国产在线播放一区二区 | 韩国久久久 | 久久五| 一本色道久久hezyo加勒比 | 日韩丰满少妇 | 国产欧美久久久 | 中文字幕日韩三级片 | 亚洲AV无码久久精品国产一区 | 免费精品在线视频 | 国产色悠悠 | 精品久久久亚洲 | 久久久国产精品黄毛片 | 91大神久久| 亚洲成人精品av | 九九热视频免费观看 | 麻豆传媒在线看 | 中国美女一级黄色片 | 日本福利网站 | 亚洲第99页| av网址在线看 | 无码国产色欲xxxx视频 | 亚洲欧美日韩国产精品 | 国产 日韩 一区 | 久久久精品视频网站 | 国产毛茸茸| 国产福利视频一区二区三区 | 中文字幕视频在线 | 99自拍| 国产精品一级无码 | 色哟哟入口 | 农村少妇 |