JTCThread使用樣例
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
JTC支持新舊iostream流庫,使用新舊流方法是通過宏定義HAVE_IOSTREAM。
JTC支持名字空間,通過使用HAVE_STD_IOSTREAM宏定義。
注:
這些宏定義是在GNU,GPL代碼中非常常見的,通常而言是通過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);
//生成線程類實例,特別注意的是不應該直接使用對象聲明的方式,
//而是通過new和JTCHandleT模板配合使用,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代碼時候
寫權當學習的筆計。