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

怎么建立自己网站视频网页制作工具按其制作方式分 可以分为

怎么建立自己网站视频,网页制作工具按其制作方式分 可以分为,网站上内容列表怎么做,公司找人做网站一、需求 在做播放器的时候#xff0c;很多的模块会创建一个线程#xff0c;然后在这个线程上跑单独的功能#xff0c;同时#xff0c;需要对这个线程进行控制#xff0c;比如暂停#xff0c;继续等#xff0c;如播放器的解码#xff0c;解封装等#xff0c;都需要对…一、需求 在做播放器的时候很多的模块会创建一个线程然后在这个线程上跑单独的功能同时需要对这个线程进行控制比如暂停继续等如播放器的解码解封装等都需要对对应的线程进行控制那么为了方便的进行控制所以引入单独的thread封装并且导出对应的回调接口。 二、实现 1. com_thread.h #pragma once#include thread #include atomicclass IThreadSink { public:virtual ~IThreadSink() {}virtual void onThreadCreate() 0;virtual void onThreadDestroy() 0;virtual void onThreadRun() 0;virtual void onThreadPause() 0;virtual void onThreadTask() 0; };class IThread {typedef enum{STAT_WAIT,STAT_RUN,STAT_PAUSE,STAT_QUIT}ThreadStat;public:virtual ~IThread() {}IThread(IThreadSink* _sink);void threadCreate();void threadDestroy();void run();void pause(); private:std::atomicint _stat_cur;std::atomicint _stat_set;std::thread _thread;IThreadSink* _sink;bool _is_init;void _threadTaskInternal();void _setStat(ThreadStat stat); }; 2. com_thread.c #include com_thread.hIThread::IThread(IThreadSink* sink):_stat_cur(STAT_WAIT),_stat_set(STAT_WAIT),_sink(NULL),_is_init(false) {_sink static_castIThreadSink*(sink); }void IThread::threadCreate() {if (_is_init){return;}_thread std::thread(IThread::_threadTaskInternal, this);_is_init true; } void IThread::threadDestroy() {if (!_is_init){return;}_setStat(STAT_QUIT);_thread.join();_is_init false; } void IThread::run() {if (!_is_init){return;}if (_stat_cur STAT_WAIT || _stat_cur STAT_PAUSE){_setStat(STAT_RUN);if (_sink){_sink-onThreadRun();}} } void IThread::pause() {if (!_is_init){return;}if (_stat_cur STAT_RUN){_setStat(STAT_PAUSE);if (_sink){_sink-onThreadPause();}} }void IThread::_threadTaskInternal() {if (_sink){_sink-onThreadCreate();}while (1){if ((_stat_cur STAT_WAIT || _stat_cur STAT_PAUSE) _stat_cur _stat_set){std::this_thread::sleep_for(std::chrono::milliseconds(1));continue;}if (_stat_cur ! _stat_set){_stat_cur _stat_set.load();}if (STAT_QUIT _stat_cur){break;}if (STAT_WAIT _stat_cur || STAT_PAUSE _stat_cur){continue;}if (STAT_RUN _stat_cur){_sink-onThreadTask();}}if (_sink){_sink-onThreadDestroy();} } void IThread::_setStat(ThreadStat stat) {_stat_set stat;while (_stat_cur stat){std::this_thread::sleep_for(std::chrono::milliseconds(1));} }3. demo.cpp #include iostream #include com_thread.hclass ThreadTestDemo :public IThreadSink { public:virtual void onThreadCreate() override{std::cout Create std::endl;}virtual void onThreadDestroy() override{std::cout Destroy std::endl;}virtual void onThreadRun() override{std::cout Run std::endl;}virtual void onThreadPause() override{std::cout Pause std::endl;}virtual void onThreadTask() override{std::this_thread::sleep_for(std::chrono::milliseconds(100));std::cout do task!!! std::endl;}void test(){IThread* _thread new IThread(this);_thread-threadCreate();std::this_thread::sleep_for(std::chrono::milliseconds(1000));for (int i 0; i 3; i){_thread-run();std::this_thread::sleep_for(std::chrono::milliseconds(1000));_thread-pause();std::this_thread::sleep_for(std::chrono::milliseconds(2000));}_thread-threadDestroy();delete _thread;} };
http://www.ho-use.cn/article/10812536.html

相关文章:

  • 制作企业网站作业湖南长沙
  • 网站开发模板下载为什么自己做的网站老是404错误
  • 舆情分析师需要具备哪些技能百度手机网站优化
  • 网站备案被拒绝设计企业品牌商标
  • 东莞制作公司网站的公司一般网站 广告
  • 网站建设全网营销客户资源seo目标关键词优化
  • 网站制作没有原创图片怎么办注销主体备案与网站备案表
  • wordpress自定义登陆页面资源网站优化排名优化
  • 百度录入网站顺德网站制作案例信息
  • 建设银行的官方网站高铁纪念币爱站长尾词
  • com后缀的网站郑州个人做网站汉狮
  • wap电影网站建设长沙房价2020最新价格
  • 湛江做网站哪家好网页制作创建站点
  • 点击网站出现微信二维码的链接怎么做物业公司会计好做吗
  • 张家界市建设网站技术开发包括哪些内容
  • 凤凰一级a做爰片免费网站h5免费制作软件
  • 东莞石龙网站建设无锡网站
  • 网站源码下载搭建网站设计的一般步骤是什么?
  • 中国电子商务中心官网青岛seo整站优化公司
  • 资讯网站开发网站建设合同要求
  • 旅游网站html专业网站建设设计
  • 临海市住房和城乡建设规划局网站如何将网站提交给谷歌
  • 大连网站关键字优化物流公司网站建设有什么要点
  • 开封网站建设报价宁波网络推广制作
  • 山西网站建设公司排名视频制作公司需要什么资质
  • 扶余市建设局网站邵阳邵东网站建设
  • 电商网站建设与课程设计怎样进行网站后台管理
  • 大连网站模板建站模板网小说下载
  • 网站交互主要做什么.net asp可以外链其它网站吗
  • 新竹自助网站旅游景点网站建设方案