JTCThread使用樣例

JTCThread使用樣例

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

JTC支持新舊iostream流庫,使用新舊流方法是通過宏定義HAVE_IOSTREAM

JTC支持名字空間,通過使用HAVE_STD_IOSTREAM宏定義。

 

注:

這些宏定義是在GNUGPL代碼中非常常見的,通常而言是通過autoconf機制生

成一個平臺相關的配置config.h頭文件,在文件中宏定義出所支持的平臺和編譯器。

 

 

#ifdef HAVE_IOSTREAM

#  include <iostream>

#else

#  include <iostream.h>

#endif

 

#ifdef HAVE_STD_IOSTREAM

using namespace std;

#endif

 

 

 

定義線程類,主要實現JTCRunnable抽象類的run函數

 

class Clock : public JTCRunnable

{

void run()

{

              printf(“hello,jtc thread.”);

    }

}

 

 

使用線程類實例

int main(int argc, char** argv)

{

    try

{

              //使用JTC線程前必須如下初始化線程庫

       JTCInitialize bootJTC(argc, argv);

 

              //生成線程類實例,特別注意的是不應該直接使用對象聲明的方式,

              //而是通過newJTCHandleT模板配合使用,JTCHandleT來管理

              //通過new生成的線程實例。在win32下不同過這種方式,會產生

              //崩潰,爲什麼?這涉及另外一個問題。

 

              JTCHandleT<Clock> c = new Clock();

 

              //啓動線程

       c -> start();

 

              //主程序睡眠

                  JTCThread::sleep(1000*5);

             

              //線程停止

       c -> stop();

      

       //下面是JTC異常處理

    }catch(const JTCException& e)    {

       cerr << "JTCException: " << e.getMessage() << endl;

    }

return 0;

}

 

 

注:

       挺簡單的一個線程程序,只要注意在使用的過程中一些事項,JTC線程是

非常好使用的。如需要對JTC進一步的瞭解,可以看看本人看JTC代碼時候

寫權當學習的筆計。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章