osg自学笔记4——《最长的一帧》第12日
第十二日
1、osgDB:: DatabasePager::DatabaseThread::run ()函数
当前位置:osgDB/DatabasePager.cpp ,
osgDB:: DatabasePager::DatabaseThread::run ()函数
那么,我们就得到了一个也许可行的数据流图,如下所示:
- DatabasePager 类所定义的各种数据结构:
- 1、DatabasePager::DatabaseThread 类:这是分页数据库的核心处理线程。
- 2、DatabasePager::DatabaseRequest 结构体:这个结构体保存了用户的单个数据请求
- 3、DatabasePager::RequestQueue 结构体:它负责保存和管理一个“数据请求列表”
- 4、DatabasePager::ReadQueue 结构体:这个结构体继承自 RequestQueue
2、osgDB:: DatabasePager::DatabaseThread::run ()函数
当前位置:osgDB/DatabasePager.cpp 第 451 行,osgDB:: DatabasePager::DatabaseThread::run ()函数
现在我们可以进入线程循环体内部浏览了。每次循环开始时,数据处理线程都被自动阻
塞,避免无谓的系统消耗;直到 updateBlock 函数在外部被执行才会放行,继续下面的代码。
updateBlock 函数可能在以下几种情形下被执行:(略)
DatabasePager::ReadQueue::takeFirst 函数简介。
总结
- 解读成果:
DatabasePager 数据流,重要变量。 - 悬疑列表:
————完————