前面的文章实现了父类ZThreadClass和子类MyThread1Class。
以下代码是类的使用方法和输出结果。
以下代码是类的使用方法和输出结果。
main.c
#include "ZThreadClass.h"
#include "MyThread1Class.h"
#include "MyThread1Class.h"
static void DoSomething(void * obj)
{
ZThreadClass * th = (ZThreadClass *)obj;
printf("\t线程 [%s] 正在运行 \n", th->threadName);
th->ZSleep(500);
}
{
ZThreadClass * th = (ZThreadClass *)obj;
printf("\t线程 [%s] 正在运行 \n", th->threadName);
th->ZSleep(500);
}
void ZThreadClassTest(void)
{
ZThreadClass * th = ZThreadClassCreate();
th->Init(th);
th->VirtualDoSomething = DoSomething;
th->SetThreadName(th, "父类 ZThreadClass");
th->Start(th);
{
ZThreadClass * th = ZThreadClassCreate();
th->Init(th);
th->VirtualDoSomething = DoSomething;
th->SetThreadName(th, "父类 ZThreadClass");
th->Start(th);
th->ZSleep(2000); //让线程跑一会
th->Stop(th);
th->ZSleep(200);
}
}
void MyThread1ClassTest(void)
{
MyThread1Class * th = MyThread1ClassCreate();
th->Init(th);
th->threadptr->SetThreadName(th->threadptr, "子类 MyThread1Class");
th->threadptr->Start(th->threadptr);
{
MyThread1Class * th = MyThread1ClassCreate();
th->Init(th);
th->threadptr->SetThreadName(th->threadptr, "子类 MyThread1Class");
th->threadptr->Start(th->threadptr);
th->threadptr->ZSleep(2000); //让线程跑一会
th->threadptr->Stop(th->threadptr);
th->threadptr->ZSleep(200);
printf("\n按任意键退出..... \n");
getchar();
}
printf("\n按任意键退出..... \n");
getchar();
}
void main(void)
{
ZThreadClassTest();
printf("\n");
MyThread1ClassTest();
}
{
ZThreadClassTest();
printf("\n");
MyThread1ClassTest();
}
输出结果:
开始线程: [父类 ZThreadClass] 。
线程 [父类 ZThreadClass] 正在运行
线程 [父类 ZThreadClass] 正在运行
线程 [父类 ZThreadClass] 正在运行
线程 [父类 ZThreadClass] 正在运行
[父类 ZThreadClass] 线程停止。
线程 [父类 ZThreadClass] 正在运行
线程 [父类 ZThreadClass] 正在运行
线程 [父类 ZThreadClass] 正在运行
线程 [父类 ZThreadClass] 正在运行
[父类 ZThreadClass] 线程停止。
线程 [子类 MyThread1Class] 创建资源。
开始线程: [子类 MyThread1Class] 。
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
[子类 MyThread1Class] 线程停止。
线程 [子类 MyThread1Class] 删除资源。
开始线程: [子类 MyThread1Class] 。
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
线程 [子类 MyThread1Class] 正在运行
[子类 MyThread1Class] 线程停止。
线程 [子类 MyThread1Class] 删除资源。
按任意键退出.....