UC故事2011/11/30

信息隐藏 数字图像空域隐写与分析技术的实现 【代码】信息隐藏 数字图像空域隐写与分析技术的实现。 阅读详情

 

今日之事

* 文档完成

* Jiarong例子

* test的例子

 

1. CRtThreadManager

* class definition


class RT_API_EXPORT CRtThreadManager 
{
 ....

 static CRtThreadManager* Instance();                                        // singleton implementation. bad implemented.
 static void CleanupOnlyOne();

 RtResult InitMainThread(int aArgc, char** aArgv);
 
 .....

 CRtThread* GetThread(TType aType);                                        // for what ?
 IRtReactor* GetThreadReactor(TType aType);
 IRtEventQueue* GetThreadEventQueue(TType aType);          // why this ?        实际上只是一个"convenient method“,调用GetThread()完成。 2011/12/08
 IRtTimerQueue* GetThreadTimerQueue(TType aType);

...

 // create Task Thread (include EventQueue and TimerQueue only)        // for what ??? what is task thread ?
 RtResult CreateUserTaskThread(
  CRtThread *&aThread,
  TFlag aFlag = TF_JOINABLE,
  BOOL bWithTimerQueue = TRUE);

 ......

public:
 // the following member functions are mainly used in TP.
 RtResult CreateReactorThread(TType aType, IRtReactor *aReactor, CRtThread *&aThread);
 
 // mainly invoked by CRtThreadManager::~CRtThreadManager()
 RtResult StopAllThreads(CRtTimeValue* aTimeout = NULL);
 RtResult JoinAllThreads();                                           // what's this ?

 // mainly invoked by CRtThread::Create().
 RtResult RegisterThread(CRtThread* aThread);     // all threads need to be registered ?

 RtResult UnregisterThread(CRtThread* aThread);

......

 

 enum TModule    // for what ?
 {
  TM_SINGLE_MAIN,
  TM_MULTI_ONE_DEDICATED,
  TM_MULTI_POOL
 };
 static TModule GetNetworkThreadModule();
......

......

 static IRtReactor* CreateNetworkReactor();           // 根据不同的宏创建不同的reactor实例

                // 基本上有3种不同的Reactor给network thread: CRtReactorSelect, CRtReactorWin32Asyncselect, CRtReactorEpoll   2011/12/08

private:
 RtResult SpawnNetworkThread_i();                        // 产生子线程,具体细节???

......

 
 // singleton mutex is recursive due to CRtCleanUpBase() will lock it too.
 CRtMutexThreadRecursive m_SingletonMutex;
 CRtMutexThread m_ReferenceControlMutexThread;

 typedef std::vector<CRtThread *> ThreadsType;
 ThreadsType m_Threads;
 typedef CRtMutexThread MutexType ;
 MutexType m_Mutex;
 TType m_TTpyeUserThread;
 
......
 CRtThread *m_pThreadNetwork;           // for what ?

......

};

 

 

 

* CRtThreadManager::InitMainThread()

初始化的不仅仅是main thread

 

* CRtThreadManager::CreateNetworkReactor()

根据宏选择生成不同的Reactor,以下三种之一:

CRtReactorSelect

CRtReactorWin32AsyncSelect

CRtReactorEpoll

 

CRtThreadManager::RegisterThread()

RtResult CRtThreadManager::RegisterThread(CRtThread* aThread)
{
 RT_ASSERTE_RETURN(aThread, RT_ERROR_INVALID_ARG);
 ......

 ThreadsType::iterator iter = m_Threads.begin();
 for ( ; iter != m_Threads.end(); ++iter) {
  // we don't check equal ThreadId because mutil CRtThreads may use the same id.   WHY ???
  if ((*iter) == aThread ||
   (*iter)->GetThreadType() == aThread->GetThreadType())
  {

   ......
   return RT_ERROR_FOUND;
  }
 }

 m_Threads.push_back(aThread);
 return RT_OK;

}

 

2. 文档总结

Q:CEventQueue与TimerQueue分别完成什么功能?

      A:前者用于不同线程之间传递信息,后者完成定时器功能 2011/12/08

Q:一个client下面也有3个线程?分别做什么东东?

Q:ThreadManager用于启动(管理)网络线程,only网络线程?

      A:管理所有线程。 2011/12/08


N:关于线程与事件队列

                                  主(平台)线程类              网络线程类                           主线程事件队列类                                 网络线程事件队列类

操作系统             

Win32                      CRtThreadReactor            CRtThreadReactor  ?         CRtReactorWin32Message              CRtReactorWin32AsyncSelect        

Linux                         CRtThreadTask                  CRThreadReactor              EventQueue                                         CRtReactorEpoll


注:从这里看,Reactor主要表现成一个Event Queue。

 

3. Jiarong的例子

main函数有三步:

* 初始化主线程

* 生成cmd conference

* 运行主线程       

 

Q:init main thred的时候,主线程的run event loop未运行?

Q:几块东东如何关联的?

Q:运行主线程的时候,没有reactor也没有问题?

 

 

 

C语言关键字static的绝妙用途 为什么要说static妙,它确实是妙,在软件开发或者单片机开发过程中,大家总以为static就是一个静态变量,在变量类型的前面加上就自动清0了,还有就是加上static关键字的,不管是变量还是关键字,在局部变量中,变量仅限于局部可见,在全局区中,static变量或函数仅限于本文件可见,当然还有一个重要的特性被忽略了。。。。       就是static修饰的局部变量 它的数值 是上一次函数调用结 阅读详情

相关推荐

优快云积分获取与管理全攻略

技术社区积分系统是知识共享生态的核心激励机制,通过量化用户贡献实现资源交换。其底层逻辑遵循Web2.0时代的UGC经济模型,用户通过内容创作、社区互动等行为积累虚拟资产。在开发者社区场景中,积分体系能有效促进技术文档、工具源码等资源的流通,优快云作为国内头部平台,其积分规则具有典型参考价值。掌握签到策略、内容互动技巧和资源上传规范等实操方法,可系统性提升积分获取效率。2023年新规强化了连续签到奖励和互动质量检测机制,结合GitHub等开源平台资源互补,能构建更高效的技术资源获取路径。

weixin_34233974的博客 218

短视频平台-小说推文(UC故事会)推广任务详情

点击我的钱包,再点击立即绑定就跳转到提现账户这个页面,这里可以添加银行卡和支付宝,收益可以提现到银行卡和支付宝,在这里任意选择一个账户完善个人资料提交即可。具体收益查询 点击我的,可提现这里可以看见各平台收益的总和,再点击钱包明细,可以看见每一笔订单的收益。点击我的再点击我的钱包,点击提现,再点击全部提现,再点确认就可以提现到你绑定的账户里面。打开小程序,点击“我的”,点击“我的账号”,再点击“新增账号”进入到账号绑定界面。点击审核通过,这里就能看见通过的关键词,关键词通过就可以去发布作品了。

十二指环的博客 1万+

Dofbot机械臂从零部署笔记(1)——ROS之创建URDF模型、配置Moveit和MotionPlanning

Dofbot机械臂从零部署笔记(1)——ROS之创建URDF模型、配置Moveit和MotionPlanning

takedachia的博客 8697

UC故事 2011/11/15

1. WTL * STL, ATL, WTL STL系标准模板库,主要提供算法、容器(Vector, List)等基础类服务, HP支持,C++类库,已经标准化 ATL:Active Template Lib,微软支持,主要提供对COM对象的开发,但缺少UI方面的支持 WTL:Windows Template Lib,微软支持,基于ATL,提供UI(窗口)支持,并有类似于MFC一样的应用

printf1998的专栏 1623

揭秘Synopsys EDA中的AI黑科技:DSO.ai如何改变传统芯片设计流程

本文深入探讨了Synopsys EDA中的AI黑科技DSO.ai如何革新传统芯片设计流程。通过数据驱动的方法论、功耗优化革命和时序收敛智能加速,DSO.ai显著提升了设计效率和质量,实现了从经验驱动到AI驱动的范式转变。文章还提供了实战指南,帮助团队跨越AI EDA的实施鸿沟。

weixin_29296241的博客 525

海康/大华设备如何接入GB28181平台?最新2022版互联避坑指南

本文详细解析了海康/大华设备接入GB28181平台的最新2022版互联避坑指南,涵盖参数配置、实时视音频点播协议交互及典型故障排查。重点介绍了GB/T28181-2022标准下的设备编码规范、SIP服务器配置及媒体流保活机制,帮助工程团队高效解决设备离线和媒体流中断等问题。

weixin_30733003的博客 686

UC故事 - 回顾 2012/04/03

1. 关于client/server的build http://blog.youkuaiyun.com/printf1998/article/details/6398354

printf1998的专栏 576

Notion卡顿救星:3分钟搞定DNS优化,手机电脑全平台加速指南

本文针对Notion访问慢和卡顿问题,提供了全平台DNS优化与Hosts文件修改的详细指南。通过更换优质DNS服务器或建立静态IP映射,可有效解决因网络延迟和域名解析导致的加载缓慢,实现手机与电脑端的快速加速,提升Notion使用流畅度。

v6b7n8m9q0的博客 1306

UC故事 2010-11-29

1. 概要设计(old)Q 一个会议里有多个server时,不同server之间的用户是如何通讯的?Host是否总在top server上?Q LVS向Controller及Controller之间keep-alive信号的频率?Q 老文档里的Message Bus是否就是MCS ?Q top server的潜在性能瓶颈在哪里?Q TCP协议每一个包都要确认?Q 各种不同的data与command在系统里的传输路径?Q top server负责资源管理与命令处理,sub serer简单负责数据传递 ----

printf0edu的专栏 353

H3C BGP联盟实验

bgp,bgp联盟,bgp公认团体属性,

一只懒羊羊 968

YOLO26 魔术师专栏|全网独家首发!2026 原创级创新赋能 CV 全场景

基于 YOLO26 核心架构迭代,融合原创自研、2026 AAAI/CVPR/ICCV 顶会前沿成果,打造更高效、更灵活、更具创新性的计算机视觉解决方案!

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4360

UC故事 2010-12-17

<br />UC故事 <br /> <br />1. SIP与H323的简单比较<br /> <br />相同点<br />* 均为多媒体通讯的应用层控制(售令)协议,功能基本相同<br />* 均用RTP作为媒体交换协议<br /> <br />不同<br />* H323 制定者为国际电联ITU,希望保持与PSTN的互通;SIP为Internet工作组<br />* H323成熟,复杂;SIP轻量,灵活<br />* H323二进制协议;SIP文本协议<br />* H323有单独的呼叫建立及媒体协商过

printf0edu的专栏 441

AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研

在当今的人工智能时代,大模型技术的迅猛发展为各行各业带来了前所未有的变革。这些大模型,以其强大的语言理解和生成能力,正在逐步成为智能化应用的核心。然而,如何高效地利用这些大模型,构建出满足各种需求的应用,仍然是一个具有挑战性的问题。DB-GPT,作为一个开源的AI原生数据应用开发框架,应运而生,旨在简化大模型应用的开发过程,让构建智能化应用变得触手可及。本文将深入介绍DB-GPT的核心功能、关键特性,并通过实战操作,展示如何利用DB-GPT进行数据应用开发。DB-GPT是一个开源的AI原生数据应用开发框架。

寻道AI,探索AI无限可能! 1万+

UC故事 2011/11/24

1. Chat Module接收信息,并演示到UI上面的全过程: STACK TRACE: CChatMainDlg::ReceiveMessage(unsigned long 19923456, WTL::CString & {...}, WTL::CString & {...}, int 1, _charformatw * 0x00119fa8) line 589 CChatMainDl

printf1998的专栏 998

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

UC故事 2011/11/21

### 研究client framework ### 1. Create Conference Q:在Create Conference的时候,会向Server发PDU吗?   ### 研究Chat module ###  1. Chat消息发送过程 * 相关类 CChatMainDlg CChatSession ISessionClient CConference CCo

printf1998的专栏 479

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

UC故事2011/11/19

### 文档阅读 ### 1. ApplicationFrame.doc Q:一个Client上的每一个component都会发出一次enroll请求? Q:What is resource update exactly ? * 几个概念关系 ConferenceManage -> ComponentManage -> ComponentContainer -> Componen

printf1998的专栏 534

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

UC故事2011/11/22

1. Session模块研究 * CUpdateType typedef enum {  UPDATE_TYPE_ADD,  UPDATE_TYPE_REMOVE,  UPDATE_TYPE_MODIFY,  UPDATE_TYPE_SUB,  UPDATE_TYPE_UNSUB,  UPDATE_TYPE_UNKNOW = 100 }CUpdateType;   * CC

printf1998的专栏 479

UC故事2011/11/29

1. Reactor * CRtReactorBase::ScheduleTimer RtResult CRtReactorBase:: ScheduleTimer(IRtTimerHandler *aTh, LPVOID aArg,      const CRtTimeValue &aInterval, DWORD aCount) {  m_Est.EnsureSingleThre

printf1998的专栏 556

UC故事2011/11/17

### 搞定UCP4.5-0429开发环境(home) 1. info server * 直接F5 $20111117 18:57:53.828 2264/12320 ERROR: CRtAcceptorTcp::StartListen, bind() failed! addr=192.168.1.100 port=1224 err=10049:在其上下文中,该请求的地址无效。

printf1998的专栏 770

UC故事2011/11/27 - 2

1. 再次研究线程 * 线程种类     typedef int TType;     enum     {         TT_MAIN,         TT_NETWORK,         TT_DNS,                      // Q:for what ?         TT_CURRENT,           // Q:for what?

printf1998的专栏 906

UC故事2011/11/26

1. 开发环境恢复 * 处理Info/controller启动问题:Bind $20111126 17:24:29.062 16496/16684 ERROR: CRtAcceptorTcp::StartListen, bind() failed! addr=192.168.1.101 port=1224 err=10048:通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

printf1998的专栏 877

UC故事2011/11/20 - 1

### 研究Chat实现 ### 1. 研究目标 *  Chat模块被load的全过程 * Chat消息发送过程 * Chat消息接收过程 2. WinMain() of ConfMain launch rtTracespy.exe(Q:Why not see 任务管理器?) load rtDiagnose.dll load rtConfClient.dll(主程序

printf1998的专栏 598

UC故事 2011/11/16

Build/run Box4.2.0.0.2 1. source code D:\study\uc-study-workspace\ER-InfoServer-box-4.2.0.2-110214-1459\ 2. workspace :: entry app client: ROOT/confapp/conf-client.dsw / confmain

printf1998的专栏 410

UC故事 2011/11/20 - 2

1. server信息如何传递到client应用层? void CConference::OnReceiveData(CRtMessageBlock& data) { CRtAutoPtr decPdu; RtResult ret = CInfoSvrPduBase::DecodePdu(data, decPdu.ParaOut());         .... CInfoSvrPdu

printf1998的专栏 331

UC故事2011/11/27 - 1

1. 关于connection的定时器 #define TIME_CONF_CONNECT_TIME                (1000 * 30) 改成 #define TIME_CONF_CONNECT_TIME                (1000 * 5) 试试效果,看5秒的效果是什么。 注:结果没有什么感觉,恢复原值。 2. CRtReactorBase

printf1998的专栏 634

UC故事2011/10/11

1. HTTP review * HTTP1.1 vs HTTP 1.0 使用一个TCP Connection处理多个到同一Server的请求 * HTTP Methods Safe methods: HEAD, GET, OPTIONS, TRACE Unsafe m

printf1998的专栏 405
上一篇: UC故事2011/11/29
下一篇: UC故事2011/12/01
printf1998
博客等级 码龄16年 14粉丝 196原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值