JTCThread使用样例
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代码时候
写权当学习的笔计。
本文地址:http://com.8s8s.com/it/it26403.htm