这是当前盖莫游戏引擎设计的简单线程相关模块,比较简单
当然也就通俗易懂了
最基本的Mutex...
1 ////////////////////////////////////////////////////////
2 /// 定义引擎线程互斥
3 ////////////////////////////////////////////////////////
4 class Mutex : public Object
5 {
6 public:
7 Mutex(){}
8 virtual ~Mutex(){}
9 public:
10 ////////////////////////////////////////////////////
11 /// 锁线程
12 ////////////////////////////////////////////////////
13 virtual void Lock() = 0;
14 ////////////////////////////////////////////////////
15 /// 解线程
16 ////////////////////////////////////////////////////
17 virtual void UnLock() = 0;
18
19 DECLARE_OBJECT(Mutex)
20 };
方便的线程锁
1 ////////////////////////////////////////////////////////
2 /// 定义引擎线程基本锁
3 ////////////////////////////////////////////////////////
4 template<class Lock = RefPtr<Mutex> >
5 class MutexLock
6 {
7 public:
8 MutexLock(Lock ptr):mutex(ptr){mutex->Lock();}
9 ~MutexLock(){mutex->UnLock();}
10 private:
11 Lock mutex;
12 };
简单的更新和渲染同步类
1 template<class T,class Mutex,class Condition>
2 class ThreadSync
3 {
4 public:
5 double time; //! timestamp
6 float difftime;
7 int physics_frame;
8 int render_frame;
9 Mutex lock;
10 Condition physics_condition;
11 Condition render_condition;
12 };
至于具体的使用吗 期待盖莫2.1.1版本吧O(∩_∩)O~