emsApplication/3rdPartner/libhv/unittest/hthread_test.cpp

60 lines
1.3 KiB
C++
Raw Normal View History

2024-05-24 12:19:45 +08:00
#include "hthread.h"
#include "htime.h"
HTHREAD_ROUTINE(test_thread1) {
int cnt = 10;
while (cnt-- > 0) {
printf("tid=%ld time=%llums\n", hv_gettid(), gettimeofday_ms());
hv_msleep(100);
}
return 0;
}
class TestThread2 : public HThread {
protected:
virtual void run() {
int cnt = 10;
while (cnt-- > 0) {
printf("tid=%ld time=%llums\n", hv_gettid(), gettimeofday_ms());
hv_msleep(100);
}
}
};
class TestThread3 : public HThread {
protected:
virtual bool doPrepare() {
printf("doPrepare\n");
return true;
}
virtual void doTask() {
printf("tid=%ld time=%llums\n", hv_gettid(), gettimeofday_ms());
}
virtual bool doFinish() {
printf("doFinish\n");
return true;
}
};
int main() {
printf("c-style hthread_create\n");
hthread_t thread1 = hthread_create(test_thread1, NULL);
hthread_join(thread1);
printf("cpp-style override HThread::run\n");
TestThread2 thread2;
thread2.start();
thread2.stop();
printf("cpp-style override HThread::doTask\n");
TestThread3 thread3;
thread3.setSleepPolicy(HThread::SLEEP_UNTIL, 100);
thread3.start();
hv_sleep(1);
thread3.stop();
return 0;
}