這是當前蓋莫游戲引擎設計的簡單線程相關模塊,比較簡單
當然也就通俗易懂了
最基本的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~